问题描述
我正在尝试设置 django 表单的样式,我可以将类应用到带有小部件的 TextInputs,但对于电子邮件和密码,它不适用。知道为什么吗? 另外,如何删除密码上面的文字?密码要求,不是help_text
forms.py
class SignupForm(UserCreationForm):
email = forms.EmailField()
class Meta:
model = User
fields = ['email','first_name','last_name','password1','password2']
widgets = {
'email': forms.EmailInput(attrs={'class': 'forms-group__input'}),'first_name': forms.TextInput(attrs={'class': 'forms-group__input'}),'last_name': forms.TextInput(attrs={'class': 'forms-group__input'}),'password1': forms.PasswordInput(attrs={'class': 'forms-group__input'}),'password2': forms.PasswordInput(attrs={'class': 'forms-group__input'}),}
表单.html
<form class="forms-group__form" method="POST" enctype="multipart/form-data">
{% csrf_token %}
{% for field in form %}
{{ field.errors }} <br>
<div class="forms-group__input-field">
<label class="forms-group__label">{{ field.label_tag }}</label><br>
{{ field }}<br>
{% if field.help_text %}
<p class="help">{{ field.help_text|safe }}</p>
{% endif %}
</div>
{% endfor %}
<div class="forms-group__button-div"><input class="button submit-button forms-group__button" type="submit" value="Update Profile"></div>
</form>
解决方法
在表单类中声明的字段不是由 ModelForm
自动生成的,因此在 {{1} 的 widgets
属性中为它们声明了一个小部件} 不起作用。您可以放弃在类中声明它并让它自动生成:
Meta
或者您可以在字段本身中为字段指定小部件:
class SignupForm(UserCreationForm):
email = forms.EmailField()
...