如何解决如何在Django中设置USerCreationForm的表单错误的样式?
我正在使用USerCreationForm制作一个注册表单的项目,我想设置表单错误的样式,导致错误在我的模板image of my form and how error looks like 中显得很丑
所以我想要的是它不应该显示错误的字段,而应该直接显示错误。
我的注册表格
<form action="{% url 'registration_pg' %}" method="post">
{% csrf_token %}
<div class="name-container">
<!-- < id="first_name " class="form-control" name="first_name" placeholder="first name" required> -->
{{form.first_name}}
{{form.last_name}}
</div>
<div class="username-container form-inputs">
{{form.username}}
</div>
<div class="student-info">
{{form.std}}
{{form.div}}
{{form.rollno}}
</div>
<div class="user-fields">
{{form.email}}
{{form.password1}}
{{form.password2}}
</div>
<div class="form-errors">
{{form.errors}}
</div>
<button class="btn btn-block btn-info ripple-effect" type="submit" name="Submit" alt="sign in" style="background:#0277bd;">Submit</button>
</form>
我的forms.py文件
class StudentCreationForm(UserCreationForm):
first_name = forms.CharField(max_length=30,widget=forms.TextInput(attrs={'id': 'first_name','class': 'form-control','placeholder': 'first name'}))
last_name = forms.CharField(max_length=50,widget=forms.TextInput(attrs={'id': 'last_name','placeholder': 'last name'}))
username = forms.CharField(max_length=100,widget=forms.TextInput(attrs={'id': 'username','placeholder': 'username eg (jhon16)'}))
std = forms.IntegerField(widget=forms.NumberInput(attrs={'id': 'std','class': 'form-control stu-info','placeholder': 'std'}))
div = forms.CharField(max_length=1,widget=forms.TextInput(attrs={'id': 'div','placeholder': 'division'}))
rollno = forms.IntegerField(widget=forms.NumberInput(attrs={'id': 'rollno','placeholder': 'roll no'}))
email = forms.EmailField(widget=forms.EmailInput(attrs={'id': 'email','placeholder': 'email'}))
password1 = forms.CharField(max_length=100,widget=forms.PasswordInput(attrs={'id': 'password1','placeholder': 'password'}))
password2 = forms.CharField(max_length=100,widget=forms.PasswordInput(attrs={'id': 'password2','placeholder': 'confirm password'}))
class Meta:
model = User
fields = ['first_name','last_name','username','std','div','rollno','email','password1','password2']
解决方法
我正在处理同样的问题,但我已经找到了解决方案。
{% for field,error in form.errors.items %}
<div class="alert alert-danger my-3 p-1" role="alert">
{{ error|striptags }}
</div>
{% endfor %}
首先,您必须使用 for 循环来访问每个字段及其错误消息。然后只插入变量错误并应用条带标签(它会删除项目符号)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。