gpt4 book ai didi

python - Wagtail FormBuilder - 如何在登陆模板中使用表单数据?

转载 作者:太空宇宙 更新时间:2023-11-03 15:44:14 27 4
gpt4 key购买 nike

我使用 Wagtail 贡献的表单构建器模块在 Wagtail Admin 中创建了一个简单的联系人表单。该表单具有动态添加的字段NameEmailSubjectMessage;模型 ContactPage 继承自 AbstractForm

问题:

我想使用在名称字段中输入的名称来个性化向使用联系表单的用户发送的响应消息。 Wagtail 的“表单构建器上的阅读文档”页面仅指出 formform_page.html 模板上下文的一部分,而 form_page_landing.html模板是标准模板。是否可以通过开箱即用的登陆模板上下文访问表单提交的值?如果没有,任何人都可以举例说明如何/覆盖哪些页面功能,以便将我需要的信息添加到上下文中?谢谢!

最佳答案

Wagtail 通过 AbstractForm ( https://github.com/wagtail/wagtail/blob/master/wagtail/contrib/forms/models.py#L296 ) 及其 serve 方法为其表单页面提供服务。此方法检查 HTTP 方法是否为“POST”,以便处理表单并返回登录页面或呈现实际表单。您可以将此方法覆盖到您的自定义表单类,以便它更新登录页面的上下文,如下所示:

   def serve(self, request, *args, **kwargs):        if request.method == 'POST':            form = self.get_form(request.POST, page=self, user=request.user)            if form.is_valid():                self.process_form_submission(form)                                # Update the original landing page context with other data                landing_page_context = self.get_context(request)                landing_page_context['name'] = form.cleaned_data['name']                return render(                    request,                    self.get_landing_page_template(request),                    landing_page_context                )        else:            form = self.get_form(page=self, user=request.user)        context = self.get_context(request)        context['form'] = form        return render(            request,            self.get_template(request),            context        )

现在,登陆页面上下文将有一个 name 上下文变量,其中包含名称表单字段的值!

关于python - Wagtail FormBuilder - 如何在登陆模板中使用表单数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41905976/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com