Django多对多:从文章列表中获取类别列表

时间:2019-06-08 09:59:47

标签: django orm django-queryset django-2.1

为简单起见,假设我只有3个模型:文章,类别和作者。

class Author(models.Model):
    name = models.CharField(max_length='100')
    ...

class Categories(models.Model):
    name = models.CharField(max_length='100')
    ...

class Articles(models.Model):
    name = models.CharField(max_length='100')
    author_id = models.ForeignKey(Author)
    categories = models.ManyToManyField(Categories)
    ...

我按author_id list_article = Articles.objects.filter(author_id=author_id)

过滤文章列表

我的问题是,如何从该“列表文章”中检索“类别”列表?

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以在文章列表中使用in

Category.objects.filter(articles__in=list_article)

或者直接加入作者的行列:

Category.objects.filter(articles__author_id=author_id)