我有一个数据库表Post
,它存储用户创建的文章。其他用户可以创建对这些帖子的回复,这些回复存储在PostReply
表中。现在,Post
的所有者可以接受一个PostReply
,而PostReply
的所有者必须知道他们创建了一个可接受回复的所有Post
基本上,模型是这样的:
class Post(models.Model):
owner = models.ForeignKey('auth.User', related_name = 'posts')
content = models.CharField(max_length = 1000, default = '')
class PostReply(models.Model):
owner = models.ForeignKey('auth.User', related_name = 'replies')
post = models.ForeignKey(Post, related_name = 'replies')
accepted = models.BooleanField(default = False)
我遇到的问题是:如何检索接受回复的用户的所有帖子?我知道我可以像这样获得用户的所有PostReply
对象:
queryset = PostReply.objects.filter(owner = self.request.user)
。。。我可以通过过滤接受的查询集来定义这个查询集:
queryset = queryset.filter(accepted = True)
。。。但是我不知道如何获得相关的Post
项
具体来说,这里有一个场景:
User 'Foo' creates a post 1
User 'Bar' creates a reply to post 1
User 'Foo' accepted 'Bar's reply to post 1
现在,用户“Bar”应该能够查询服务器上的帖子列表,其中他的回复是被接受的。我该怎么做
如果我没弄错,你可以试试:
更多关于Django documentation: Lookups that span relationships
旁注:注意被接受的邮件回复的唯一性
相关问题 更多 >
编程相关推荐