【发布时间】:2015-02-17 02:25:45
【问题描述】:
鉴于这些关系:
出版物 -(n:m)- 文章 -(n:m)- 广告 -(n:1)- 合作伙伴
如何查询以查找包含特定合作伙伴广告的所有出版物?例如,类似:
result = Publication.objects.filter(articles.adverts.partner = partner)
【问题讨论】:
标签: python django filter django-queryset
鉴于这些关系:
出版物 -(n:m)- 文章 -(n:m)- 广告 -(n:1)- 合作伙伴
如何查询以查找包含特定合作伙伴广告的所有出版物?例如,类似:
result = Publication.objects.filter(articles.adverts.partner = partner)
【问题讨论】:
标签: python django filter django-queryset
您可以使用 __ 在查询中访问外键(或外键 attr)。
例子:
result = Publication.objects.filter(articles__adverts__partner = partner)
提示: __ _ _)
假设您的 Partner 模型有一个名为 username 的字段,您也可以这样做:
result = Publication.objects.filter(articles__adverts__partner__username = 'username')
你也可以这样做:
result = Publication.objects.filter(articles__adverts__partner__username__icontains = 'adm')
【讨论】:
icontains、lt、lte、gt、gte... 可用于过滤日期,或检查包含他们的用户名中有 3 个字符等...... Django 非常适合这些东西!