[英]django form queryset multiple same field filter
我正在尝试基于3个部门ID来过滤我的用户字段queryset。 我可以过滤单个部门,但是当我尝试多次过滤时,它不起作用。 谁能帮我这个? 我的代码如下:
form.py
class EditProjectForm(forms.ModelForm):
prefix = 'edit_form'
class Meta:
model = Model_A
fields = '__all__'
def __init__(self, user, *args, **kwargs):
super(EditProjectForm, self).__init__(*args, **kwargs)
self.fields['user'].queryset = Employee.objects.filter(department__id=18).filter(department__id=19).filter(department__id=20)
您当前的查询试图找到具有部门ID 18,19 和 20名员工。如果department
是一个外键,这是不可能的。
您可以使用Q()
对象查找部门ID为18 或 19 或 20的员工。
Employee.objects.filter(Q(department=18)|Q(department=19)|Q(department=20))
但是,在您的情况下,最简单的解决方案是使用__in
返回部门ID为18、19或20中任何一个的雇员。
Employee.objects.filter(department__in=[18, 19, 20])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.