繁体   English   中英

Django表单queryset多个相同字段过滤器

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM