2016-11-12 160 views
2

我想更多的参数形式Django的 - 如何添加额外的参数表格,查询集

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

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

self.year = year 

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