我正在使用 Django django.forms.Form
和 django.views.generic.edit.FormView
呈现 HTML 模板。
我想为表单中的某些字段添加默认值,但遇到问题:
这是我的代码:
from django.views.generic.base import TemplateView
from django.views.generic.edit import FormView
class SignForm(forms.Form):
greeting_message = forms.CharField(
label='Greeting message',
widget=forms.Textarea,
required=True,
max_length=100,
)
book_name = forms.CharField(
label='Guestbook name',
max_length=10,
required=True,
)
class SignView(FormView):
"""Assign initial value for field 'book_name'."""
form_class = SignForm(
initial={
'book_name': 'aaaa'
}
)
def form_valid(self, form):
...
谁能帮帮我?
最佳答案
正如上面的评论所说,您必须将 form_class
分配给类。通过用括号和参数做你所拥有的,你正在实例化一个对象,这就是你有异常的原因。
相反,要设置初始数据,请定义 get_initial
函数,如下所示:
def get_initial(self):
initial = super(SignView, self).get_initial()
initial['book_name'] = 'aaaa'
return initial
关于python - Django:表单的动态初始值失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28351236/