django - 如何在表单中向查询集添加其他参数

django - how to add additional parameters to queryset in forms

我想在表单中向查询集添加额外的参数

class Reserve(forms.ModelForm):

    food_name = forms.ModelChoiceField(queryset=Food.objects.all())

    def __init__(self, year=None, month=None, day=None, *args, **kwargs):
        super(Reserve, self).__init__(*args, **kwargs)
        self.year = kwargs.pop('year')
        self.month = kwargs.pop('month')
        self.day = kwargs.pop('day')
        self.fields['food_name'].queryset = Food.objects.filter(
            serve_date__year = year, serve_date__month = month, serve_date__day = day)

    class Meta:
        model = Reservation
        fields = ('food_count', 'food_name')

但是它的 return KeyError:

'year'

Year 在这里是一个明确的关键字参数,它不在 kwargs 中。

 self.year = year

对于您明确列出的其他参数,依此类推。