from django import forms
from django.core import validators
from matplotlib import widgets
from .models import *
class Userregistration(forms.ModelForm):
class Meta:
model=User
fields=['username','password','name','email_id','contact','address']
widgets={
'username':forms.CharField(attrs={'class':'form-control'}),
'password':forms.PasswordInput(attrs={'class':'form-control'}),
'name':forms.CharField(attrs={'class':'form-control'}),
'email_id':forms.EmailField(attrs={'class':'form-control'}),
'contact':forms.CharField(attrs={'class':'form-control'}),
'address':forms.CharField(attrs={'class':'form-control'}),
}
it is showing me typeerror:'__init()'got an unexpected keyword argument 'attrs'
CodePudding user response:
A CharField [Django-doc] is not a widget, it is a *form field. The default widget for a CharField is a TextInput [Django-doc] and for an EmailField [Django-doc] it is an EmailInput [Django-doc]:
class Userregistration(forms.ModelForm):
class Meta:
model=User
fields=['username','password','name','email_id','contact','address']
widgets={
'username':forms.TextInput(attrs={'class':'form-control'}),
'password':forms.PasswordInput(attrs={'class':'form-control'}),
'name':forms.TextInput(attrs={'class':'form-control'}),
'email_id':forms.EmailInput(attrs={'class':'form-control'}),
'contact':forms.TextInput(attrs={'class':'form-control'}),
'address':forms.TextInput(attrs={'class':'form-control'}),
}
CodePudding user response:
Django forms.CharField() is not a widget. So change your CharField as TextInput. You can see Built-in widgets[Django Doc] for more details.
from django import forms
from django.core import validators
from matplotlib import widgets
from .models import *
class Userregistration(forms.ModelForm):
class Meta:
model=User
fields=['username','password','name','email_id','contact','address']
widgets={
'username':forms.TextInput(attrs={'class': 'form-control'}),
'password':forms.PasswordInput(attrs={'class':'form-control'}),
'name':forms.TextInput(attrs={'class': 'form-control'}),
'email_id':forms.EmailInput(attrs={'class':'form-control'}),
'contact':forms.TextInput(attrs={'class': 'form-control'}),
'address':forms.TextInput(attrs={'class': 'form-control'}),
}
CodePudding user response:
attrs is not an argument to the field, it's an argument to the widget.
file = forms.FileField(widget=forms.FileInput(attrs={'class': 'File'}))
