我使用 ModelChoiceField 做一个动态表单,我想使用我的一个 DB 表的值来初始化它。问题在于,如果我在表单中覆盖 __ init __,那么我不能在我的视图中使用 request.POST,我需要它来验证和提取用户选择的选项。所以.. 在覆盖我的表单的 _ init __ 之后,有一些方法可以在我的视图中使用 request.POST 吗?
表格:
categoria_formfield = forms.ModelChoiceField(widget=forms.Select(attrs={'size':'13', 'onchange':'this.form.action=this.form.submit()'}), queryset=sitio_categoria.objects.none())
def __init__(self):
super(anadirComercioPaso1_form, self).__init__()
self.fields['categoria_formfield'].queryset = sitio_categoria.objects.exclude(categoria='patrimonio').values_list('categoria',flat=True)
VIEW:(此代码引发 __ init __() 恰好采用 1 个参数(给定 2 个)错误。)
def panelComerciante_view(request):
is_validated=False
if request.method == 'POST':
formulario_anadir_comercio_paso1 = anadirComercioPaso1_form(request.POST)
if formulario_anadir_comercio_paso1.is_valid():
is_validated=True
else:
formulario_anadir_comercio_paso1 = anadirComercioPaso1_form()
return render_to_response('home/anadir_comercio_step1.html',{'formulario_anadir_comercio_paso1': formulario_anadir_comercio_paso1, 'pepe':pepe}, context_instance=RequestContext(request))