求助:Django自定义表单无法在浏览器中正常显示
Django自定义表单无法显示的问题排查与解决
核心原因
你的forms.py文件里,每个字段定义的末尾都加了逗号,这会让每个字段变成元组类型,而不是Django表单框架能识别的字段实例。当模板渲染{{ form }}时,Django无法正确解析这些元组,导致表单内容无法显示。
修复方法
修改forms.py,去掉所有字段末尾的逗号,同时修正contrasena字段错误的label:
from django import forms class FormularioRegistro(forms.Form): Nombre = forms.CharField(label="Titulo", required=True) Apellido1 = forms.CharField(label="Primer Apellido", required=True) Appelido2 = forms.CharField(label="Segundo Apellido", required=True) Telefono = forms.CharField(label="Telefono", required=True, widget=forms.NumberInput) Cedula = forms.CharField(label="Cedula", required=True, widget=forms.NumberInput) email = forms.EmailField(label="Email", required=True) contrasena = forms.CharField(label="Contraseña", required=True, widget=forms.PasswordInput)
额外优化建议
模板里记得添加CSRF令牌,否则提交表单会触发Django的CSRF保护错误,同时可以加上提交按钮提升可用性:
{% extends "base.html" %} {% block title %} Registro {% endblock %} {% block content %} <form action="" method="post"> {% csrf_token %} <div>{{ form }}</div> <button type="submit">完成注册</button> </form> {% endblock %}
内容的提问来源于stack exchange,提问作者Franced Latouche
相关产品推荐
相关产品推荐

