[英]Login form for custom users in django
我创建了一个自定义的User SignUp类。
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内置用户,因为他们没有图像字段。
您可以使用和扩展内置模型User
。 最短的路径是
from django.contrib.auth.models import User
from django.db import models
class UserWithPhoto(User):
image = models.ImageField()
但是使用用户个人资料是一种更好的做法,您可以在以下文章中阅读有关内容: Django中的用户身份验证
您可以在Django用户个人资料中以及在Django中通过自定义字段扩展User模型来阅读有关内容。
如果扩展用户模型,则更改将应用于所有用户。 考虑一下这一点,您可能拥有管理员,开发人员,修订者甚至访客,他们所有人可能都有其他人所没有的某个字段,因此与为每个子类划分User
子类相比,为每个子类配置不同的个人档案是更好的解决方案,甚至更糟创建一个包含所有类型用户所需的所有字段的类(只考虑它很痛苦)。
您可以通过添加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内置实例,并且想要检索图像
user.profile.image
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.