【发布时间】:2017-05-10 11:26:44
【问题描述】:
我正在尝试创建一个表单,以便从用户那里获取某些详细信息。
我已经在 forms.py 中定义了字段,并且我还在使用 django widget 系统定义了其他属性,例如 placeholder 和 css 类。但它向我展示了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'}),
}
我已阅读 Django docs for Overriding default fields 以及此问题 init() got an unexpected keyword argument 'attrs' 但无法修复错误。
我对 Python 和 Django 还很陌生,如果有任何帮助,我将不胜感激,谢谢。
【问题讨论】:
标签: django python-3.x django-forms