【发布时间】:2019-06-11 21:38:11
【问题描述】:
我正在寻找最好地处理多个页面上的单个表单的方法。就像在主页、关于页面和几个博客页面上注册时事通讯一样。
我已经通过这两种方式处理了这个确切的场景。
编写一个接受 POST 请求的 API(使用 DRF),然后将正常的 HTML 表单指向该 API。这很有效,而且非常灵活,但感觉有点矫枉过正。
将表单对象传递到我希望表单所在的每个视图的上下文中,然后使用
includes form_snippet with form=form将其包含到模板中
第一种方法使用 wagtail 更加灵活,其中所有需要在管理员方面发生的事情就是将时事通讯作为 sn-p 包含在内,管理员用户可以在其中选择是否要在页面上显示时事通讯或不。
虽然这两种方法都可以正常工作,但它们都“感觉”不对,因为我认为有一种简单的方法可以做到这一点,而无需创建大型 API,或将表单对象传递给每个视图。
【问题讨论】:
-
编写自定义包含模板标签,并将其包含在您需要的每个模板中。
标签: python django forms wagtail