2017-03-22 30 views
0

我正在使用Django和新的编程。我想知道如何查询与用户模型具有OneToOne关系的用户的配置文件。这里是我的代码:Django - 如何根据用户模型查询用户配置文件OneToOneField

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信息。例如什么是电子邮件[email protected]的用户的公司名称或国家

只是在旁边注意这也是我正在做的最好的做法,以捕获有关用户在Django的附加信息?

回答

0

你可以得到用户和使用它的用户配置,像这样:

# Make sure you create a UserProfile when you create a new User 
user = User.objects.get(email='[email protected]') 
user.userprofile.company_name 
user.userprofile.country 

是的,这是额外的字段添加到默认的Django用户模型推荐的方式。请参阅this问题。如果您使用自己的User模型,则可以将UserProfile字段添加到User模型中。

相关问题