Ich versuche ein Formular zu erstellen, wo ich bestimmte Details vom Benutzer bekomme.Django Fehler: TypeError: __init __() hat ein unerwartetes Schlüsselwortargument 'attrs'
Ich habe definierten Felder in forms.py
und ich bin auch andere Attribute wie Platzhalter und CSS-Klasse mit django widget
System definieren. Aber es ist mir eine TypeError
zeigt:
TypeError: __init__() got an unexpected keyword argument 'attrs'
Folgende ist mein Code:
models.py
from django.db import models
class Contact(models.Model):
your_name = models.CharField(max_length=100)
your_email = models.EmailField()
your_subject = models.CharField(max_length=100)
your_comment = models.TextField(max_length=200)
def __str__(self):
return self.name
forms.py
from django.forms import ModelForm, TextInput, TextInput, EmailField
from .models import Contact
class ContactForm(ModelForm):
class Meta:
model = Contact
fields = ('your_name', 'your_email', 'your_subject', 'your_comment')
widgets = {
'your_name' : TextInput(attrs={'placeholder': 'Name *', 'class': 'form-control'}),
'your_email' : EmailField(attrs={'placeholder': 'Email *', 'class': 'form-control'}),
'your_subject' : TextInput(attrs={'placeholder': 'Subject *', 'class': 'form-control'}),
'your_comment' : Textarea(attrs={'placeholder': 'Comment *', 'class': 'form-control'}),
}
I‘ Lesen Sie Django docs for Overriding default fields und auch diese Frage init() got an unexpected keyword argument 'attrs' kann aber den Fehler nicht beheben.
Ich bin ziemlich neu bei Python und Django und würde mich über jede Hilfe freuen, danke.
ich die 'EmailField' Anweisung platziert haben in' widget' nur oder wahrscheinlich habe ich das in einer falschen Weise. –
Ja, und das ist das Problem. EmailField ist ein 'Feld', das ein Widget annimmt. Es kann nicht als Widget festgelegt werden. – Pythonista