Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.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 将选择限制为通过Q_Python_Django_Django Models - Fatal编程技术网

Python 将选择限制为通过Q

Python 将选择限制为通过Q,python,django,django-models,Python,Django,Django Models,我正试图从外键相关字段中获取数据列表,但它无法将\u选项\u限制为 我的模型 def limit_choices_segment(): 返回Q(角色=地点.城市)&Q(角色=地点.村庄)&Q(角色=地点.城镇) 类别段(核心模型): 起始点=模型.ForeignKey(放置,在删除=模型.CASCADE上,限制选项到=限制选项段, 相关_name='出发点') 结束点=模型.ForeignKey(放置,在删除=模型.CASCADE上,限制选项到=限制选项段, 相关的(名称=(到达点) route

我正试图从外键相关字段中获取数据列表,但它无法将\u选项\u限制为

我的模型

def limit_choices_segment():
返回Q(角色=地点.城市)&Q(角色=地点.村庄)&Q(角色=地点.城镇)
类别段(核心模型):
起始点=模型.ForeignKey(放置,在删除=模型.CASCADE上,限制选项到=限制选项段,
相关_name='出发点')
结束点=模型.ForeignKey(放置,在删除=模型.CASCADE上,限制选项到=限制选项段,
相关的(名称=(到达点)
routes=models.ForeignKey(路由,on_delete=models.CASCADE)
定义(自我):
返回“{}-{}”。格式(self.start\u点,self.end\u点)
当我只用一个Q(role=Place.CITY)或其他Q(角色=Place.CITY)来尝试它时,它工作得非常完美

你是想这样做吗

def limit_choices_segment():
    return Q(role=Place.CITY)  Q(role=Place.VILLAGE) | Q(role=Place.TOWN)

相反?它可能不起作用,因为您正在为三个不同的角色使用
&
来过滤它们。

但是|的意思是“或”,我需要包含所有这些过滤器,所以我应该使用&“和”
来包含它们,而
只会同时包含角色为所有这三件事的对象,逻辑上与任何对象都不匹配。