2014-12-02 58 views
0

我有这两个模型。Django外键用户没有任何属性post_set

class UserProfile(models.Model): 
    user = models.OneToOneField(User) 

这应该是

def posts(self): 
     return self.user.poster.all() 

INSTEAD OF

def posts(self): 
     return self.user.post_set.all() 

def __unicode__(self): 
     return self.user.username 



class Post(models.Model): 
    author = models.ForeignKey(User, related_name='poster') 

def __unicode__(self): 
     return self.title 

,我试图显示用户的所有帖子此html页面,其中USER_LIST = UserProfile.objects上。全部()

{% for user in user_list %} 

     {{ user.user }} 

     {{ user.posts }} 

    {% endfor %} 

H无论如何,我被这个错误页迎接,说'UserProfile'对象没有属性'post_set',或'UserProfile'对象没有属性'post_set',这取决于我是否使用user.user.posts或user.posts 。

任何人有任何想法?

感谢

回答

1

在安置自己的类,你已经为poster定义的ForeignKey您的相关名用户。这意味着您可以通过user.poster.all()访问所有用户的帖子。

所以你对你的用户配置类的posts方法应该如下:

def posts(self): 
    return self.user.poster.all() 
+0

嗯,如果我使用海报而不是帖子,我仍会得到同样的错误。它使用def post(self):return self.user.poster.all(),所以我想我会坚持。谢谢! – tryingtolearn 2014-12-02 14:34:35

+0

你说得对,我纠正过了。 – f0obar 2014-12-02 14:52:45

1

在您例如User没有post_set属性。如果你想获得相关用户的所有帖子试试这个:

self.user.post.all() 
+0

它没有工作,但它使用 高清职位(个体经营)工作: 回报self.user.poster.all () 在网页上显示[<发布:发布对象>],但我想我可以选择要显示的部分。谢谢! – tryingtolearn 2014-12-02 14:36:09

+0

@tryingtolearn您可以编辑我的答案。所以将来它会帮助其他人。 – wolendranh 2014-12-02 14:49:04

+0

完成。再次感谢您的帮助 – tryingtolearn 2014-12-02 21:31:49

相关问题