我正在使用Django和新编程。我想知道如何查询与User模型具有OneToOne关系的用户的配置文件。这是我的代码:
models.py:
class User(models.Model):
email = models.EmailField(unique=True, null=True)
date_joined = models.DateTimeField(default=datetime.now)
username = models.CharField(max_length=22)
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
company_name = models.CharField(max_length=500)
contact_person = models.CharField(max_length=255)
country = models.CharField(max_length=100)
city = models.CharField(max_length=100)
如果用户注册并在验证后填写了他的个人资料。如何通过views.py查询数据库,对于任何特定用户,他的UserProfile信息是什么。例如,具有电子邮件example@examplemail.com
的用户的company_name或国家/地区是什么旁边的注释也是我正在做的最佳做法,以便在Django中捕获有关用户的其他信息?
答案 0 :(得分:1)
您可以像以下一样获取用户并使用其UserProfile:
# Make sure you create a UserProfile when you create a new User
user = User.objects.get(email='example@examplemail.com')
user.userprofile.company_name
user.userprofile.country
是的,这是向默认django用户模型添加额外字段的推荐方法。请参阅this问题。如果您使用自己的用户模型,则只需将UserProfile字段添加到用户模型。