如何使用请求用户从onetoone关系中获取价值

时间:2015-04-06 15:48:31

标签: django one-to-one

我使用此代码在模板中设置请求用户,并且此代码工作非常好。

{% if user.is_authenticated %}
    {{ user.name }}
{% else %}
    xxxxxxx
{% endif %}

表:

user(model.Models):
    id
    ...

Profile(model.Models):
    user onetoone(user)
    name
    last name

我的用户表与Profile有一个onetoone关系,我想知道我是否可以使用request.user或其他方式获取Profile表的字段,感谢所有人。

1 个答案:

答案 0 :(得分:0)

如果我理解你正在使用内置用户模型。所以我们可以写:

<强> models.py

from django.contrib.auth.models import User

class Profile(models.Model):
    ***user*** = models.OneToOneField(User)
    name = models.CharField(max_length=50)

User.*profile* = property(lambda u: Profile.objects.get_or_create(***user***=u)[0])

<强> views.py

def profile(request):
    user = request.user
    profile = user.*profile*

您可以使用profile.name或其他

等个人资料字段