python - Django获取包含多对多关系pk的所有对象
问题描述
我有以下模型,我需要检索在其连接订阅中具有订阅的所有订阅(我知道其中的primary key
)
connected_subscription
在实践中,我需要在其字段中包含订阅的所有订阅
Subscription(models.Model):
connected_subscriptions=models.ManyToManyField('self', blank=True)
如何检索所有订阅?
Subscription.objects.filter(connected_subscription__???=subscription_key)
解决方案
您可以使用以下方式过滤:
Subscription.objects.filter(connected_subscriptions=pk_of_the_object)
其中pk_of_the_object
是相关对象的主键。
这是可行的,因为 Django 将在订阅之间的联结表上创建一个LEFT OUTER JOIN
(可能优化为一个INNER JOIN
),然后过滤链接Subscription
的 s。
推荐阅读
- xamarin.forms - 轮播页面导航
- java - Java Rest 方法返回结果,但接收时出错 -Access-Control-Allow-Origin' 缺失
- c# - C# System.Diagnostics.EventLog.GetEventLogs
- php - 通过不在 Google App Engine php 中工作来订购
- django - 为什么注释重复我的查询集对象?
- c# - 开发存储帐户需要身份验证
- angular - 模块构建失败:@import '../../node_modules/@angular/material/toolbar/toolbar';
- python - PYTHON - imap over TLS
- python - 根据列在数据框中添加或减去两列?
- c# - 单选按钮的背景颜色