Django:从queryset获取具有ID的对象

时间:2018-07-04 16:56:59

标签: python django django-queryset

我有以下型号(名称已更改):

class Blog(models.Model):
    created_dtm = models.DateTimeField()
    updated_dtm = models.DateTimeField()
    title = models.CharField(max_length=200, null=True, blank=True)
    creator = models.ForeignKey(Authors, on_delete=models.CASCADE, null=True, blank=True)

class BlogAuthor(models.Model):
    blog = models.ForeignKey(Blog, on_delete=models.CASCADE)
    author = models.ForeignKey(Author, on_delete=models.CASCADE)
    class Meta:
        unique_together = ('blog', 'author')

,我需要获取涉及作者的所有Blog(及其详细信息)。 问题在于每个Blog可以有多个作者。

现在,我可以使用以下命令获取博客ID的查询集:

BlogAuthor.objects.filter(author=request.user).values_list('blog_id', flat=True)

,然后尝试使用周期for来逐个获取每个Blog,但是是否可以通过一个查询获取Blog列表?

1 个答案:

答案 0 :(得分:1)

只需使用reverse relation

Blog.objects.filter(blogauthor__author=request.user)