我有一个有3个部分的视图。顶部是搜索区域。左下部分显示了一个对象列表,右侧部分显示了所选对象的详细信息。
我的视图继承自ListView和FormView。
class SearchViewMixin(FormView):
template = 'template here'
form_class = forms.SearchForm
def get_form_kwargs(self):
print 'This is not being called'
kwargs = super(SearchViewMixin, self).get_form_kwargs()
kwargs['search-units'] = self.request.search.unit_set.all()
return kwargs
class ListView(ListView, SearchViewMixin):
def get_queryset()...
def get_context_data()....
表单视图是这样的: -
class ReceiptSearchForm(BaseForm):
obj_id = forms.IntegerField(required=False)
unit = forms.ModelChoiceField(queryset=None, required=False, empty_label='Select a unit',
widget=core.SelectPickerSearch)
def __init__(self, *args, **kwargs):
self.units = kwargs.pop('search-units', None)
super(ReceiptSearchForm, self).__init__()
self.fields['unit'].queryset = self.units
问题是没有调用get_form_kwargs方法。 print语句没有被执行
由于我没有编写或更新任何数据,我只是使用表单的get方法。