我创建了一个自定义用户注册类。
class SignUp(models.Model):
userId = models.CharField(max_length=8, blank=False, unique=True)
Name = models.CharField(max_length=200)
VehicleNumber= models.CharField(max_length=12)
ContactNum = models.IntegerField(default=0)
def __unicode__(self):
return smart_unicode(self.Name)
我用它来创建一个注册表单。现在,我没有办法创建用户登录。注意:我无法使用django内置用户,因为他们没有图像字段。
答案 0 :(得分:0)
您可以使用和扩展内置模型User
。最短的路径是
from django.contrib.auth.models import User
from django.db import models
class UserWithPhoto(User):
image = models.ImageField()
但更好的做法是使用用户个人资料,您可以在以下位置阅读:User authentication in Django
您可以在Django user profile和此处Extending the User model with custom fields in Django了解相关信息。
如果您扩展用户模型,您将对所有用户应用更改。考虑一下,你可能有Administrators,Developers,Reviwers,甚至是Guest,所有这些都可能有其他人不喜欢的字段,所以每个字段的不同配置文件比子类User
更好。每一个,甚至最差的都会为所有类型的用户创建一个包含所有字段的单个类(只考虑它会受到伤害)。
答案 1 :(得分:0)
您可以通过添加OneToOneField来扩展内置的django用户。
YourCustomUser(models.Model):
user = models.OneToOneField(User,related_name='profile')
image = models.ImageField()
//put here your others attributes
如果您有YourCustomUser实例并且想要访问User内置实例
your_custom_instance.user
如果您有User内置实例并想要检索e.i图像
user.profile.image