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

时间:2016-11-12 21:48:23

标签: django forms django-queryset

我想在表单

中向查询集添加其他参数
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')

但返回KeyError:

'year'

1 个答案:

答案 0 :(得分:1)

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

 self.year = year

对于您明确列出的其他参数等等。