簡體   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