【问题标题】:Django query filter many to many to many etcDjango查询过滤器多对多等
【发布时间】: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


【解决方案1】:

您可以使用 __ 在查询中访问外键(或外键 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') 

【讨论】:

  • 乐于助人!您应该检查其他一些过滤器,例如:icontainsltltegtgte... 可用于过滤日期,或检查包含他们的用户名中有 3 个字符等...... Django 非常适合这些东西!
猜你喜欢
  • 1970-01-01
  • 2013-08-18
  • 2018-07-28
  • 1970-01-01
  • 2011-01-14
  • 1970-01-01
  • 1970-01-01
  • 2021-05-26
  • 2011-11-07
相关资源
最近更新 更多