如何获取“User”已回复的所有“Post”对象?

2024-05-19 02:26:12 发布

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

我有一个数据库表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”应该能够查询服务器上的帖子列表,其中他的回复是被接受的。我该怎么做


Tags: 用户namemodelsbarpost帖子classqueryset

热门问题