Django:获取具有至少一个相关模型的模型的子集

Posted

技术标签:

【中文标题】Django:获取具有至少一个相关模型的模型的子集【英文标题】:Django: get subset of a model with at least one related model 【发布时间】:2013-05-13 14:26:42 【问题描述】:
class Category(models.Model):
    # fields

class Product(models.Model):
     category = models.ForeignKey(Category)
     # fields

假设并非所有类别都至少有一个产品,

我怎样才能获得至少关联一个产品的所有类别

有没有办法用 Django 查询集来做到这一点?

【问题讨论】:

【参考方案1】:

您应该可以在该类别上filter。您想找到产品不为空的Category 对吗?:

Category.objects.filter(product_set__isnull=False).distinct()

【讨论】:

好一个,我没想到isnull。无论如何,正确的形式是Category.objects.filter(product_set__isnull=False).distinct(),否则我们会得到重复的类别。请更新答案

以上是关于Django:获取具有至少一个相关模型的模型的子集的主要内容,如果未能解决你的问题,请参考以下文章