使用小部件更改Django表单中标签的CSS
我正在尝试将CSS样式应用于Django(版本3.1.3)中的管理员登录表单。我能够通过使用小部件更改Django表单中标签的CSS,css,django,django-forms,django-widget,Css,Django,Django Forms,Django Widget,我正在尝试将CSS样式应用于Django(版本3.1.3)中的管理员登录表单。我能够通过forms.TextInput(attrs={'class':'textinputclass'})方法使用小部件轻松定制输入,但是似乎没有办法将CSS类添加到标签中?我可以将标签设置为“false”,这样它就不会出现,但理想情况下,我希望能够将CSS类与之关联 下面的代码显示了用于用户名和密码文本输入的小部件。如何对标签执行类似操作 class MyAuthForm(AuthenticationForm):
forms.TextInput(attrs={'class':'textinputclass'})
方法使用小部件轻松定制输入,但是似乎没有办法将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
如果您不介意单独渲染标签,那么这样做很简单。我自己还没有找到一个更容易的方法 在模板中:
{% for field in form %}
<label class="label-class">{{ field.label }}</label>
{{ field }}
{% endfor %}
进一步阅读:谢谢,这稍微有效,但我不明白在使用{%csrf_token%}{{form.as_p}}}@Ramirez100时如何将其与表单提交集成。您能解释一下提交表单的问题吗?你也可以发布一些代码!我现在让它工作了。我的问题是您提供的代码列出了表单以及格式化标签。我只是希望在稍后创建表单时为标签提供一个类。我将您的代码更改为{%for字段,格式为%}{%endfor%},这非常适合应用css类。作为后续问题,您是否知道如何针对特定的标签,以便某些标签获得不同的css类?正如您从上述注释中所看到的。我正在努力突出显示中的代码comments@Ramirez100别担心!当您需要一个代码块时,只需按enter键,并在代码的任意一侧用记号(```)将代码包装成三个。
username = forms.CharField(max_length=254, label='Username', widget=forms.TextInput(
attrs={
'class': 'input',
'placeholder': 'username',
}
))