如何在多个页面上使用单一表单

时间:2019-06-11 21:38:11

标签: python django forms wagtail

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

我已经通过这两种方式处理了这种确切的情况。

  1. 编写一个使用POST请求的API(使用DRF),然后将常规HTML表单指向该API。这行得通,而且非常灵活,但感觉有点过分了。

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

  3. 将其包含在模板中

第一种方法是使用Wagtail更加灵活,其中所有需要在管理员端进行的操作就是将新闻通讯作为摘要包含在内,管理员用户可以选择是否要在页面上接收新闻通讯。

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

1 个答案:

答案 0 :(得分:0)

我是用联络配方师来做的。我为联系人制定者使用了一个新应用来处理它。 此contactApp中的内容是template / contactForm.html。要在我希望使用的地方包含此contactForm,我可以使用{% include 'contact/contactForm.html' %},以便从我的名为contact的应用程序中加载contactForm.html。