django - “查询集”对象没有属性“用户”;
我有两个模型:个人资料和头像。
models.py
class Profile(models.Model):
user = models.ForeignKey(User)
profile_name = models.CharField(blank=True, max_length=50)
def __unicode__(self):
return u'%s %s' % (self.user, self.profile_name)
class Avatar(models.Model):
user = models.ForeignKey(User)
paths = models.CharField(max_length=100)
def __unicode__(self):
return u'%s %s' % (self.user,self.paths)
我想对 profile_name
字段(来自配置文件模型)进行搜索,并获取存储在字段 paths
(来自阿凡达模型)。
view.py
profile_name_search = Profile.objects.filter(profile_name=usr_name)
user_avatar = Avatar.objects.filter(user=profile_name_search.user.id)
usr_name
变量从表单字段传递。
由于某种原因,我收到此错误:
'QuerySet' object has no attribute 'user'
user_avatar = Avatar.objects.filter(user=profile_name_search.user.id)
Any ides?
I have two models Profile and Avatar.
models.py
class Profile(models.Model):
user = models.ForeignKey(User)
profile_name = models.CharField(blank=True, max_length=50)
def __unicode__(self):
return u'%s %s' % (self.user, self.profile_name)
class Avatar(models.Model):
user = models.ForeignKey(User)
paths = models.CharField(max_length=100)
def __unicode__(self):
return u'%s %s' % (self.user,self.paths)
I want to do a seach on the profile_name
field (from Profile model) and get the paths to the pictures stored on the field paths
(from the Avatar model).
view.py
profile_name_search = Profile.objects.filter(profile_name=usr_name)
user_avatar = Avatar.objects.filter(user=profile_name_search.user.id)
usr_name
variable is passed from a form filed.
For some reason I'm getting this error:
'QuerySet' object has no attribute 'user'
user_avatar = Avatar.objects.filter(user=profile_name_search.user.id)
Any ides?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果仅找到一个对象,
filter()
也会返回一个QuerySet
。如果您只想返回模型实例,请使用 get():filter()
returns aQuerySet
also if only one object if found. If you want to return just a model instance, useget()
:请记住,“过滤器”返回查询而不是模型。个人资料名称搜索是否应该返回可能的多个用户?如果是这样,我认为您想要:
否则您可能想要:
如果每个用户只有一个头像,您可以使用 Avatar 中的 OneToOneField 进行配置文件,然后仅作为 profile.avatar 进行访问。
Remember that "filter" returns a query not a model. Is profile name search supposed to return possibly multiple users? If so, I think you want:
Otherwise you may want:
If there is only one avatar per user you can use a OneToOneField from Avatar to profile, and then just access as profile.avatar.