python - Django:表单的动态初始值失败

标签 python django forms

我正在使用 Django django.forms.Formdjango.views.generic.edit.FormView 呈现 HTML 模板。

我想为表单中的某些字段添加默认值,但遇到问题:

Error:

这是我的代码:

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

Docs are available here .

关于python - Django:表单的动态初始值失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28351236/

相关文章:

python - "a and a or b"的目的是什么?

ruby - Sinatra Web 管理员(如 Django 管理员)

python - 提高配置不当的psycopg2(postgresql)

javascript - jquery 验证插件,仅验证当前屏幕的表单字段

javascript - 如何在css和jquery之间切换

python - 使用 python 在 opencv 中创建自己的轮廓

python - 在 python 中添加颜色条到散点图时出现 ValueError

python - 如何让 python 子进程 stdout 和 stderr 显示在 Visual Studio 输出窗口中?

python - Django-复数形式的无效 token : EXPRESSION

C# 创建类似搜索框的 Notepad++