У меня возникла ошибка в файле forms.py проекта

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'}),
        }

он показывает мне typeerror:'__init()'got an unexpected keyword argument 'attrs'

attrs - это не аргумент поля, это аргумент виджета.

file = forms.FileField(widget=forms.FileInput(attrs={'class': 'File'}))

А CharField [Django-doc] является не виджетом, это *поле формы. Виджет по умолчанию для CharField - это TextInput [Djangoo- doc], а для EmailField [Django-doc] - это 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'}),
        }

Django forms.CharField() не является виджетом. Поэтому измените ваш CharField на TextInput. Вы можете посмотреть Built-in widgets[Django Doc] для более подробной информации.

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'}),
        }
Вернуться на верх