我不知道如何从ModelForm中捕获select值。在模板上:
<div class="form-group">
<label for="{{formulario.cod_sucursal.id_for_label}}">
{{formulario.cod_sucursal.label}}</label>
<select name="{{formulario.cod_sucursal.name}}" id="{{formulario.cod_sucursal.id_for_label}}" class="custom-select form-control">
<option value='0'>Selección de Sucursal</option>
{% for opciones in formulario.cod_sucursal %}
{{opciones}}
{% endfor %}
</select>
</div>
由于篇幅较长,故意破坏表格 渲染是:
<form action="/tablaventas/recibo" method="post">
<input type='hidden' name='csrfmiddlewaretoken' value='0w3Y3WLmT6rbN488ohtG36LUMcS2t6XrhDu3X26V7fecg35kMkOzyv5kNXTRFu1Z' />
<div class="form-group">
<label for="encabezado-cod_sucursal">Cod sucursal</label>
<select name="encabezado-cod_sucursal" id="id_encabezado-cod_sucursal" class="custom-select form-control">
<option value='0'>Selección de Sucursal</option>
<option value="600">Pilgrim</option>
<option value="200">Mandiola</option>
<option value="100">Fch</option>
</select>
</div>
views.py是:
def tablaventas_recibo(request):
if request.method=='POST':
formu=VentasFormSet(request.POST, prefix='detalle') # formset
encabezado=tablaVCPFormulario(request.POST, prefix='encabezado') # Formulario
print(encabezado.errors)
if formu.is_valid() and encabezado.is_valid():
codigo_sucursal=encabezado.cleaned_data
co = formu.cleaned_data[1]
print(codigo_sucursal)
return HttpResponse('gracias')
return HttpResponse(encabezado.errors)
...而ModelForm是:
class tablaVCPFormulario(ModelForm):
class Meta:
model=VentasContrapuntoPilgrim
fields='__all__'
widgets = {
'titulo': TextInput,
'edicion': TextInput,
'fecha_contable':SelectDateWidget(attrs={'class': 'custom-select'}),
'cod_sucursal':SelectMultiple(choices=codigos_sucursal),
}
exclude = ('saldo','inicial','isbn',)
prefix='encabezado'
退出告诉我cod_sucursal是None(它不能捕获值),但是在html中进入模板。我不知道,我做错了什么或者我错过了什么因为没有抓住选择值而没有发布post方法。