我想用自定义类呈现密码字段,所以我尝试了这个:
from django.contrib.auth import get_user_model
from django.db import transaction
User = get_user_model()
class SignupForm(forms.ModelForm):
first_name = forms.CharField(label=_(u'First name'), max_length=30)
last_name = forms.CharField(label=_(u'Last name'), max_length=30)
password1 = forms.CharField(widget = forms.PasswordInput(render_value = True, attrs={'class': 'form-control', 'placeholder': 'Your password'}))
def __init__(self, *args, **kwargs):
super(SignupForm, self).__init__(*args, **kwargs)
self.fields['username'].widget.attrs.update({'class': 'form-control', 'placeholder': 'Your username'})
self.fields['first_name'].widget.attrs.update({'class': 'form-control', 'placeholder': 'Your first name'})
self.fields['last_name'].widget.attrs.update({'class': 'form-control', 'placeholder': 'Your last name'})
self.fields['email'].widget.attrs.update({'class': 'form-control', 'placeholder': 'Your email address'})
self.fields['password1'].widget.attrs.update({'class': 'form-control', 'placeholder': 'Your password'})
您可能会注意到,我尝试在声明和初始化中添加类,但这些都不起作用。该类仍然是默认类。
请注意,对于电子邮件、用户名和其他字段,类/占位符工作正常。我错过了什么吗?
编辑:这可能有助于诊断问题。这是我在 HTML 中使用的:
<div class="col-md-6">
<br />
<div class="form-group">
<label for="password1">{{ form.password1.label }}</label>
{{ form.password1 }}
{% if form.password1.errors %}
<div class="text-danger">{{ form.password1.errors|escape }}</div>
{% endif %}
</div>
</div>