我正在使用用户模型
from django.contrib.auth.models import User
UserProfile模型扩展了用户模型
class UserProfile(models.Model):
user = models.OneToOneField(User, related_name='userprofiles')
avatar = models.FileField('img',upload_to='./static/image/')
我需要使用用户的头像,我正在做类似
的事情user = User.objects.get(pk=1)
user.userprofiles
但它引发了我的错误
RelatedObjectDoesNotExist:用户没有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.
答案 0 :(得分:2)
你有以下错误:
user = models.OneToOneField(User, related_name='userprofiles')
# userprofiles with 's'
然而,您尝试使用user.userprofile
而不是s
要么移除s
中的related_name='userprofiles'
,要么继续移动,而是通过添加Userprofile
来访问s
: - &gt; user.userprofiles
答案 1 :(得分:0)
要从UserProfile
对象获取User
对象,您需要使用userprofiles
user = User.objects.get(pk=1)
up = user.userprofiles
up.user == user # will return True
答案 2 :(得分:0)
您在数据库中没有该用户的UserProfile。
RelatedObjectDoesNotExist
单独说)