【问题标题】:Django many-to-many: Get a list of categories from a list of articlesDjango 多对多:从文章列表中获取类别列表
【发布时间】:2019-10-23 14:38:39
【问题描述】:

为了简单起见,假设我只有 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)过滤文章列表

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

谢谢。

【问题讨论】:

  • @ljmocic 它返回数据库中的所有类别。我只想要在list_articles中有文章的类别

标签: django orm django-queryset django-2.1


【解决方案1】:

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

Category.objects.filter(articles__in=list_article)

或者直接加入作者:

Category.objects.filter(articles__author_id=author_id)

【讨论】:

  • 感谢@Daniel,它确实有助于解决我的问题。一旦我在侧边栏中获得了类别列表,我想在每次单击一个类别时快速过滤主容器上的文章列表。你能给我一个建议吗?
猜你喜欢
  • 1970-01-01
  • 2019-07-22
  • 1970-01-01
  • 2011-05-09
  • 1970-01-01
  • 1970-01-01
  • 2013-08-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多