Ram*_*100 0 css django django-forms django-widget
我正在尝试将 CSS 样式应用到 Django(版本 3.1.3)中的管理登录表单。我可以通过该forms.TextInput(attrs={'class':'textinputclass'})方法使用 Widgets 轻松自定义输入,但是似乎无法将 CSS 类添加到标签中?我可以将标签设置为“false”,以便它根本不显示,但理想情况下我希望能够将 CSS 类与其关联。
我下面的代码显示了用于用户名和密码文本输入的小部件。我如何为标签做类似的事情?
class MyAuthForm(AuthenticationForm):
class Meta:
model = Lesson
fields = ['username', 'password']
def __init__(self, *args, **kwargs):
super(MyAuthForm, self).__init__(*args, **kwargs)
self.fields['username'].widget = forms.TextInput(attrs={'class': 'input', 'placeholder': 'Username'})
self.fields['username'].label = False
self.fields['password'].widget = forms.PasswordInput(attrs={'class': 'input', 'placeholder': 'Password'})
self.fields['password'].label = False
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您不介意单独渲染标签,那么这很简单。我自己还没有找到更简单的方法。
在模板中:
{% for field in form %}
<label class="label-class">{{ field.label }}</label>
{{ field }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
模板中的字段将默认label呈现该字段。name如果您想设置特定标签,则必须将其传递到字段而不是小部件中:
username = forms.CharField(max_length=254, label='Username', widget=forms.TextInput(
attrs={
'class': 'input',
'placeholder': 'username',
}
))
Run Code Online (Sandbox Code Playgroud)
进一步阅读:如何在 django 表单声明中设置标签的 css 类?