Home > database >  i got an error in my forms.py file of project
i got an error in my forms.py file of project

Time:01-30

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'}))
  •  Tags:  
  • Related