我有一个带有列表字段的模型。 例如:
mymodel.sessions = [session1, session2]
我需要一个查询来获取所有mymodels
session1
在他们的会话中存在。
模型的字段看起来像
sessions = models.ForeignKey("Session", related_name="abstracts",
null=True, blank=True)
谢谢!
答案 0 :(得分:0)
您可以使用沿外键返回的反向查找来查询相关模型中的值。
MyModel.objects.filter(sessions__id=1)
这将过滤所有MyModel
个具有外键的id
个{{1}}为1的会话。
有关详细信息,请参阅https://docs.djangoproject.com/en/1.10/topics/db/queries/#lookups-that-span-relationships
答案 1 :(得分:0)
else
返回一个新的QuerySet,其中包含与给定查找参数匹配的对象。
如果您拥有,可以使用id过滤ForeignKey关系:
查找中指定的字段必须是模型字段的名称。但有一个例外,在ForeignKey的情况下,您可以指定以_id为后缀的字段名称。在这种情况下,value参数应包含外部模型主键的原始值。
在您的实例中,您需要以下内容:
filter(**kwargs)
如果要过滤Sessions模型中的任何其他字段,只需在字段中使用双下划线即可。一些例子:
mymodel.objects.filter(sessions_id=4)