python - Django:如何使用动态(非模型)数据预填充 FormView?

标签 python django django-templates

我有一个 FormView View ,使用 get_context_data() 提供了一些额外的 GET 上下文:

class SignUpView(FormView):
    template_name = 'pages_fixed/accounts/signup.html'
    form_class = SignUpForm

    def get_context_data(self, **kwargs):
        context = super(SignUpView, self).get_context_data(**kwargs)
        context = {
            'plans':    common.plans,
            'pricing':  common.pricing,
        }
        return context

这很好用。但是,我在 session 中也有一些值(不是来自任何绑定(bind)模型),我想将它们预填充到表单中。这些取决于用户在前一页上的操作。我知道(从我的另一个 post 中)我可以将表单传递到上下文中(使用 initial=),但是在上面的 FormView 情况下是否有可能?

最佳答案

您可以覆盖 FormView 类的“get_initial”方法。见 here欲了解更多信息,

例如

def get_initial(self):
    """
    Returns the initial data to use for forms on this view.
    """
    initial = super().get_initial()

    initial['my_form_field1'] = self.request.something

    return initial

'get_initial' 应该返回一个字典,其中键是表单上字段的名称,值是向用户显示表单时要使用的初始值。

关于python - Django:如何使用动态(非模型)数据预填充 FormView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22083218/

相关文章:

python - 同一图上的多个 imshow,带有不透明度 slider

python - 使用 inspect.getmembers

django - 如何使用 (HTMX) 更新两个 HTML 模板元素?

django - 获取objects.all()、reverse()或降序

python - 将多个 if 和 elif 语句应用于 for 循环中字符串列表中的子字符串

python - 在python中用*args和**kwds调用父类的函数

django - 如何在Django的ModelForm中使用请求

python - 在运行时设置 Django ModelForm 可见字段?

python - docker compose Django nginx

python - Django:如何使按钮在按下后消失/禁用?