如何在标准django用户身份验证表单中添加公司名称和网站等字段?我已经使用了用户名,密码等的默认字段,但我也喜欢添加这些字段。我知道有几种方法可以做到这一点,但你认为最好的是什么? 我已经看过关于如何做到这一点的django文档,但我还不清楚它应该如何完成。 任何帮助将不胜感激。 谢谢, -Ramsey
答案 0 :(得分:0)
通过创建OneToOneField来扩展用户的最简单方法:
class Profile(models.Model):
user = models.OneToOneField(User,blank=True,null=True)
phone = models.CharField(max_length=200,blank=True,null=True)
location = models.CharField(max_length=200,blank=True,null=True)
依此类推 - 您的属性
然后,当您注册新用户时,请提供request.user作为参数:
profile = Profile.objects.create(user=user,phone=phone,location='')
此时,您的用户的额外数据可以访问 user.profile.phone,user.profile.location等等,以便您可以根据需要使用Profile模型作为表单用户的扩展。
如果您需要访问用户的属性,请在您的个人资料模型中
class Profile(models.Model):
user = models.OneToOneField(User,blank=True,null=True)
phone = models.CharField(max_length=200,blank=True,null=True)
location = models.CharField(max_length=200,blank=True,null=True)
@property
def first_name(self):
return self.user.first_name # this will give you user's property