2016-11-12 2 views
2

я хочу, чтобы добавить дополнительные параметры в QuerySet в формахДжанго - как добавить дополнительные параметры 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

года является явным параметр ключевого слова здесь, это не в kwargs.

self.year = year 

И так далее для других параметров, которые вы указали явно.