Skip to main content
 首页 » 编程设计

python之Django 查询过滤器多对多对多等

2024年10月25日34虾米姐

鉴于这些关系:

Publication -(n:m)- Article -(n:m)- Advert -(n:1)- Partner

我如何查询以查找包含来自特定合作伙伴的广告的所有出版物?例如,像这样的东西:

result = Publication.objects.filter(articles.adverts.partner = partner) 

请您参考如下方法:

您可以使用 __ 访问查询中的外键(或外键属性)。

例子:

result = Publication.objects.filter(articles__adverts__partner = partner) 

提示 __ <-- 这是 2 个下划线 (_ _)

假设您的 Partner 模型有一个名为 username 的字段,您也可以这样做:

result = Publication.objects.filter(articles__adverts__partner__username = 'username') 

你还可以这样做:

result = Publication.objects.filter(articles__adverts__partner__username__icontains = 'adm')