Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django滤波器模型_Python_Django_Django Models - Fatal编程技术网

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)