django - 为什么小部件 EmailInput 样式不适用
问题描述
我正在尝试设置 django 表单的样式,我可以将类应用于带有小部件的 TextInputs,但对于电子邮件和密码则不适用。知道为什么吗?另外,如何删除密码上面的文字?密码要求,它不是 help_text
表格.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
为它们声明一个小部件不起作用。您可以放弃在类中声明它并让它自动生成:widgets
Meta
class SignupForm(UserCreationForm):
email = forms.EmailField()
...
或者您可以在字段本身中指定字段的小部件:
class SignupForm(UserCreationForm):
email = forms.EmailField(widget=forms.EmailInput(attrs={'class': 'forms-group__input'}))
...
推荐阅读
- python - 在熊猫中按行值获取列的子集
- c++ - 在 C++ 中全局声明数组和大小为 10^7 的函数中的问题
- mongodb - mongoDb 中的 DeleteMany 仅删除第一个条件数据
- angular - 如何在 Azure AD 上注册单租户 SPA?
- c# - 使用 Open Hardware Monitor C# 获取 CPU 温度时遇到问题
- reactjs - 如何从 React 应用程序在 asp.net core rest api 中进行身份验证
- echarts - Apache Echart 3D Surface - 不渲染
- android - MotionLayout altsrc 图像在另一个活动中仍然不可见
- java - Java POM 插件问题(无法解析 mojo org.codehaus.mojo:exec-maven-plugin 的配置)
- sql-server - 如何将所有行合并为一个?