Я пытаюсь создать форму, где я получаю определенные данные от пользователя.Ошибка Django: TypeError: __init __() получил неожиданный аргумент ключевого слова 'attrs'
Я определил поля в forms.py
и я также определение других атрибутов, как заполнителя и CSS класс с использованием Django widget
системы. Но он показывает мне TypeError
:
TypeError: __init__() got an unexpected keyword argument 'attrs'
Ниже мой код:
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'}),
}
Я ve читать Django docs for Overriding default fields, а также этот вопрос init() got an unexpected keyword argument 'attrs', но не могу исправить ошибку.
Я довольно новичок в Python и Django и буду благодарен за любую помощь, спасибо.
Я разместивший 'EmailField' заявление в' widget' я сделал только или, возможно, что в неправильном пути. –
Да, и в этом проблема. EmailField - это поле, которое принимает виджет. Он не может быть установлен как виджет. – Pythonista