我想在基于wagtail cms框架的多页网站的页脚中使用django-forms实现联系表。如何在每个页面的base.html模板中呈现表单?谢谢!
答案 0 :(得分:2)
我建议将其实现为inclusion template tag:
@register.inclusion_tag('contact_form.html')
def contact_form():
return {'form': ContactForm()}
contact_form.html
模板将包含表单的HTML。然后,您可以使用标签{% contact_form %}
答案 1 :(得分:1)
尽管您希望联系表单出现在每个页面上,但我仍然会制作一个专用的ContactFormPage并将表单放置在每个页脚中。 POST请求应指向此专用的ContactFormPage。
<form action='{% pageurl contact_page' %}' ...>
优点是:
可以通过以下方式包含html表单:
答案 2 :(得分:0)
在middleware.py
所在的根文件夹中创建一个settings.py
。然后将其添加到该文件中
class SimpleMiddleware:
def __init__(self, get_response):
self.get_response = get_response
# One-time configuration and initialization.
def __call__(self, request):
# Code to be executed for each request before
# the view (and later middleware) are called.
request.contact_form = ContactForm()
response = self.get_response(request)
# Code to be executed for each request/response after
# the view is called.
return response