为什么Django退货单无效?
我有一个函数的问题,当我使用标签{form.image\u cliente}时,总是返回一个“form is invalid”并且不保存任何内容,但是如果我使用标签{form.as\u p}返回一个form is valid并保存字段image\u cliente,我不知道为什么,我只想在模板中显示form.image\u cliente Mys表格客户:为什么Django退货单无效?,django,django-forms,django-templates,django-views,Django,Django Forms,Django Templates,Django Views,我有一个函数的问题,当我使用标签{form.image\u cliente}时,总是返回一个“form is invalid”并且不保存任何内容,但是如果我使用标签{form.as\u p}返回一个form is valid并保存字段image\u cliente,我不知道为什么,我只想在模板中显示form.image\u cliente Mys表格客户: class ClienteForm(forms.ModelForm): id_tipo_cliente = forms.ModelChoi
class ClienteForm(forms.ModelForm):
id_tipo_cliente = forms.ModelChoiceField(queryset=Tipo_cliente.objects.filter(status=1), label="Tipo de cliente" ,empty_label="Seleciona tipo", widget=forms.Select(attrs={'value':'form-control'}))
password = forms.CharField(label="Password", required=False,
widget=forms.PasswordInput)
class Meta:
model = Cliente
exclude = ['status', 'id_usuario_alt', 'fecha_creacion', 'fecha_modificacion', 'fecha_cancelacion']
fields = [
'nombres',
'apellidos',
'usuario',
'password',
'correo_electronico',
'direccion',
'telefono',
'telefono_celular',
'id_tipo_cliente',
'image_cliente',
]
labels = {'nombres':'Nombres', 'apellidos':'Apellidos', 'usuario':'Usuario', 'correo_electronico':'Correo', 'direccion':'Direccion', 'telefono':'Telefono', 'telefono_celular':'Celular', }
widgets = {
'nombres': forms.TextInput(attrs={'class':'form-control'}),
'apellidos': forms.TextInput(attrs={'class':'form-control'}),
'usuario': forms.TextInput(attrs={'class':'form-control'}),
'correo_electronico': forms.TextInput(attrs={'class':'form-control'}),
'direccion': forms.TextInput(attrs={'class':'form-control'}),
'telefono': forms.TextInput(attrs={'class':'form-control'}),
'telefono_celular': forms.TextInput(attrs={'class':'form-control'}),
'image_cliente':forms.ClearableFileInput(attrs={'multiple': True, 'class':'file', 'data-show-upload':'false', 'data-show-preview':'false'})
}
这是我视图中的我的def函数:
def subirIMGCliente(request, pk):
clientes = get_object_or_404(Cliente, pk=pk)
if request.method == 'POST':
form = ClienteForm(request.POST, request.FILES, instance=clientes)
if form.is_valid():
clientes = form.save(commit=False)
if clientes.password == '':
clientes.save(update_fields=['image_cliente'])
print('yes');
return redirect('BackEnd:cliente')
else:
print('form in not valid');
else:
form = ClienteForm(instance=clientes)
return render(request, 'back/Modulo_cliente/imagenes_cliente.html', {'form': form })
我的模板
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="form-group">
{{form.image_cliente}}
</div>
</div>
</div>
</br>
<br> <div class="row">
<div class="col-md-8 col-md-offset-2">
<button class="btn btn-success" type="submit">Guardar</button>
<a href = "{% url 'BackEnd:cliente' %}" class = "btn btn-primary "> <span>Regresar</span></a>
</div>
</div>
</div>
</form>
{%csrf_令牌%}
{{form.image_cliente}}
瓜达尔
需要以下字段:
- 乌萨里奥
- 化名
- 指令
- 阿佩利多斯
- id_tipo_客户
- 科雷奥乌尔电子公司
- 电传
- telefono_celular
<ol>
{% for error in form.non_field_errors %}
<li><strong>{{ error|escape }}</strong></li>
{% endfor %}
</ol>
{%表示表单中的错误。非\u字段\u错误%}
{{error | escape}}
{%endfor%}
对于image_cliente表单字段,类似这样的内容:
{% if form.image_cliente.errors %}
<ol>
{% for error in form.image_cliente.errors %}
<li><strong>{{ error|escape }}</strong></li>
{% endfor %}
</ol>
{% endif %}
{%if form.image\u cliente.errors%}
{form.image_cliente.errors%}中的错误为%
{{error | escape}}
{%endfor%}
{%endif%}
请提供客户形式的定义。还要检查这两种情况下的html输出。它应该可以帮助您理解问题所在。我编辑了postWhat errors show what errors what printingform.errors
Afterprint('form in not valid')
?在8个字段中打印这个:必填字段,但我不明白为什么,因为我引用了对象,如果我使用标记{form.as{p},我不明白为什么