我想在模板中添加一个 class
属性,但是我的代码不起作用。
我已经尝试过Stackoverflow的其他答案,但是这些都不适合我。
class LoginForm(forms.ModelForm):
class Meta:
model = User
fields = ['username','password']
def __init__(self, *args, **kwargs):
super(LoginForm, self).__init__(*args, **kwargs)
self.fields['username'].widget = TextInput(attrs={
'id': 'id_username',
'class': 'input',
'placeholder': 'Enter username'})
输出完全没有变化。
答案 0 :(得分:0)
是的,您可以通过以下链接进行操作:https://docs.djangoproject.com/en/2.2/topics/forms/modelforms/#overriding-the-default-fields
借助小部件,您可以在下面执行此操作。 尝试一下。
from django.forms.widgets import TextInput
您不需要覆盖__init__
方法。只需像下面那样修改代码即可。
class LoginForm(forms.ModelForm):
class Meta:
model = User
fields = ['username','password']
widgets = {
'username': TextInput(attrs={
'id': 'id_username',
'class': 'input',
'placeholder': 'Enter username'
})
}
答案 1 :(得分:0)
您可以在init表单中添加所需的类。
class LoginForm(forms.ModelForm):
class Meta:
model = User
fields = ['username','password']
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
for field in self.fields:
self.fields[field].widget.attrs['class'] = 'form-control'