Python Django滤波器模型
我有一个模型,它的字段是一个列表。 例如:Python Django滤波器模型,python,django,django-models,Python,Django,Django Models,我有一个模型,它的字段是一个列表。 例如: mymodel.sessions = [session1, session2] 我需要一个查询来获取所有mymodels,该session1存在于它们的会话中 模型的字段看起来是这样的 sessions = models.ForeignKey("Session", related_name="abstracts", null=True, blank=True) 谢谢大家! 您可以使用沿
mymodel.sessions = [session1, session2]
我需要一个查询来获取所有mymodels
,该session1
存在于它们的会话中
模型的字段看起来是这样的
sessions = models.ForeignKey("Session", related_name="abstracts",
null=True, blank=True)
谢谢大家! 您可以使用沿着外键返回的反向查找来查询相关模型中的值
MyModel.objects.filter(sessions__id=1)
这将过滤所有具有id为1的会话外键的MyModel
s
有关更多信息,请参见以下网址中的:
过滤器(**kwargs)
返回包含与给定查找参数匹配的对象的新查询集
您可以使用id筛选ForeignKey关系(如果您有):
查找中指定的字段必须是模型字段的名称。但是有一个例外,对于ForeignKey,您可以指定以_id作为后缀的字段名。在这种情况下,value参数应该包含外部模型主键的原始值
在您的实例中,这将需要以下内容:
mymodel.objects.filter(sessions_id=4)
如果要筛选会话模型中的任何其他字段,只需在该字段中使用双下划线即可。一些例子:
mymodel.objects.filter(sessions__name='session1')
mymodel.objects.filter(sessions__name__contains='1')
sessions
是一个模型字段吗?通常,这些类型的关系都是使用外键关系来表示的,但您的代码中似乎不是这样。是的,它是:sessions=models.ForeignKey(“Session”,related_name=“abstracts”,null=True,blank=True)