擅长:python、mysql、java
<p>使用正常的<code>_init_</code>,但不使用<code>self.fields['field_name]</code>,而是使用<code>self.filters[field_name]</code></p>
<p>请尝试以下代码:</p>
<pre class="lang-py prettyprint-override"><code>class RequestsFilter(django_filters.FilterSet):
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user')
super().__init__(*args, **kwargs)
self.filters['employee'].queryset = Employee.objects.filter(user=self.user)
start_date = DateFilter(field_name='date_time', lookup_expr='gt', widget=forms.TextInput(attrs={'type': 'date'}))
end_date = DateFilter(field_name='date_time', lookup_expr='lt', widget=forms.TextInput(attrs={'type': 'date'}))
employee = django_filters.ModelChoiceFilter(queryset=None, field_name='employee' )
class Meta:
model = LeaveRequest
fields = ['employee', 'type', 'date_time']
</code></pre>