Estoy tratando de crear campos personalizados en Django. No estoy seguro de que este sea el enfoque correcto, pero sigo recibiendo un error que no puedo entender enter code here
AttributeError: 'CharField' object has no attribute 'attrs'Aquí está mi código. ¿Alguien puede explicar lo que está pasando?
class UserForm(forms.ModelForm): password = forms.CharField(widget=forms.PasswordInput()) confirm_password = forms.CharField(widget=forms.PasswordInput()) class Meta: model = User fields = ('username', 'email', 'password', 'confirm_password') widgets = { 'username': forms.TextInput(attrs={'class': "form-control input-lg", 'placeholder': "نام کاربری *", 'name': 'display_name', 'required': "required", 'tabindex': "3", 'data-error': "password is required"}), 'email': forms.EmailInput(attrs={'class': "form-control input-lg", 'placeholder': 'ایمیل *', 'name': 'email', 'required': "required", 'tabindex': "4", 'data-error': "email is required"}), 'confirm_password': forms.CharField(widget=forms.PasswordInput(attrs={'class': "form-control input-lg", 'placeholder': "تکرار رمز *", 'name': 'confirm_password', 'required': "required", 'tabindex': "6", 'data-error': "confirm password is required"})), 'password': forms.CharField(widget=forms.PasswordInput(attrs={"class": "form-control input-lg", 'placeholder': " رمز *", 'name': 'password', 'required': "required", 'tabindex': "5", 'data-error': " password is required"})), }No usas el parámetro widgets correctamente. Los valores que establece para la contraseña de confirm password y password son campos cuando deberían ser widgets. Deberías usar forms.PasswordInput directamente.
Si desea personalizar las clases que se utilizan para los campos del formulario en lugar de derivarlas de las especificadas en el modelo, debe proporcionar el atributo field_classes .