一对一场德詹戈的逆转关系?

2024-05-14 13:36:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是用户模型

 from django.contrib.auth.models import User

UserProfile模型扩展了用户模型

^{pr2}$

我需要取用户的头像,我在做类似的事情

user = User.objects.get(pk=1)

user.userprofiles

但这让我错了

RelatedObjectDoesNotExist: User has no userprofile.

跟踪:

In [5]: user = User.objects.get(pk=1)

In [6]: user.userprofiles
---------------------------------------------------------------------------
RelatedObjectDoesNotExist                 Traceback (most recent call last)
<ipython-input-6-2253b19e792d> in <module>()
----> 1 user.userprofiles

C:\Program Files\Anaconda3\lib\site-packages\django\db\models\fields\related_des
criptors.py in __get__(self, instance, cls)
    405                 "%s has no %s." % (
    406                     instance.__class__.__name__,
--> 407                     self.related.get_accessor_name()
    408                 )
    409             )

RelatedObjectDoesNotExist: User has no userprofiles.

Tags: djangono用户in模型getobjectsmodels
3条回答

您在以下内容中出现了一个错误:

 user   = models.OneToOneField(User, related_name='userprofiles')
 # userprofiles with 's'

但是,您尝试使用user.userprofile而不使用s来访问它

要么删除related_name='userprofiles'中的s,要么继续移动,而是通过添加s:>;用户.userprofiles

只是数据库中没有该用户的UserProfile。 RelatedObjectDoesNotExist自己说)

要从User对象获取UserProfile对象,需要使用userprofiles

user = User.objects.get(pk=1)
up = user.userprofiles
up.user == user    # will return True

相关问题 更多 >

    热门问题