【问题标题】:How to have single form on multiple pages如何在多个页面上使用单个表单
【发布时间】:2019-06-11 21:38:11
【问题描述】:

我正在寻找最好地处理多个页面上的单个表单的方法。就像在主页、关于页面和几个博客页面上注册时事通讯一样。

我已经通过这两种方式处理了这个确切的场景。

  1. 编写一个接受 POST 请求的 API(使用 DRF),然后将正常的 HTML 表单指向该 API。这很有效,而且非常灵活,但感觉有点矫枉过正。

  2. 将表单对象传递到我希望表单所在的每个视图的上下文中,然后使用includes form_snippet with form=form将其包含到模板中

第一种方法使用 wagtail 更加灵活,其中所有需要在管理员方面发生的事情就是将时事通讯作为 sn-p 包含在内,管理员用户可以在其中选择是否要在页面上显示时事通讯或不。

虽然这两种方法都可以正常工作,但它们都“感觉”不对,因为我认为有一种简单的方法可以做到这一点,而无需创建大型 API,或将表单对象传递给每个视图。

【问题讨论】:

  • 编写自定义包含模板标签,并将其包含在您需要的每个模板中。

标签: python django forms wagtail


【解决方案1】:

我是通过联系公式来完成的。我用一个新的应用程序为我的联系人公式处理它。 在这个contactApp 中是templates/contactForm.html。要将这个contactForm包含在我想要的地方,我使用{% include 'contact/contactForm.html' %},因此它会从我的名为contact的应用中加载contactForm.html。

【讨论】:

  • 您如何将正确的形式传递给它?这似乎与我的第二种方法非常相似,但我不确定您是如何将表单对象传递给它的?
猜你喜欢
  • 2011-01-27
  • 2011-07-16
  • 1970-01-01
  • 2018-03-05
  • 1970-01-01
  • 2011-08-16
  • 1970-01-01
  • 2015-01-28
  • 1970-01-01
相关资源
最近更新 更多