如何在django用户表单中添加公司名称,公司网站等字段?

时间:2016-06-28 01:47:40

标签: python django django-models django-forms web-frameworks

如何在标准django用户身份验证表单中添加公司名称和网站等字段?我已经使用了用户名,密码等的默认字段,但我也喜欢添加这些字段。我知道有几种方法可以做到这一点,但你认为最好的是什么? 我已经看过关于如何做到这一点的django文档,但我还不清楚它应该如何完成。 任何帮助将不胜感激。 谢谢, -Ramsey

1 个答案:

答案 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