gpt4 book ai didi

django - 包括显示表单的模板

转载 作者:行者123 更新时间:2023-12-04 12:21:45 26 4
gpt4 key购买 nike

我想要做的是在给定页面的底部包含一个来自单独模板的表单,比如说; “example.com/listdataandform/”。

当 View 包含在 URLConf 中时,表单模板“form.html”显示表单。所以我可以用“example.com/form/”查看

到目前为止,我所拥有的是这样的:

{% extends "base/base.html" %}

{% block title %} page title {% endblock %}
{% block content %}
<h2>some "scene" data</h2>
<ul>
{% for scene in scenes %}
<li>{{ scene.scene }} - {{ scene.date }}</li>
{% endfor %}
</ul>

{% include "tasks/form.html"%}

{% endblock %}

“块内容”中的代码按其应有的方式工作,因为它是用它对应的 url “example.com/listdataandform/” View 定义的。

{% 包含 "tasks/form.html"%} :这仅显示 form.html 中的提交按钮,正如预期的那样。我通过这样做才意识到:{% include "tasks/form.html"%},永远不会执行相应的 View 方法来为“表单”模板提供数据。

有什么方法可以做到这一点,而不必在 urls.py 中将 View 定义为特定模式,以便可以在不转到该指定 URL 的情况下使用该表单..?

所以我想更普遍的问题是;如何包含模板并为它们提供从 View 生成的数据?

谢谢。

最佳答案

在这种情况下,我需要在每个(或几乎每个)页面上包含一些内容,我使用自定义上下文处理器,然后将其添加到 settings.py 中的 TEMPLATE_CONTEXT_PROCESSORS。您可以使用此方法将表单添加到上下文中。

例子:
common.py(这与 settings.py 位于同一文件夹中)

from myapp.forms import MyForm

def context(request):
c = {}
c['myform'] = MyForm()

return c

您还可以在此处进行表单所需的任何处理。

然后将其添加到 settings.py 文件中:
设置.py
.
.
TEMPLATE_CONTEXT_PROCESSORS = (
'''
All the processors that are already there
'''
"myproject.common.context",
)
.
.

关于django - 包括显示表单的模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19950836/

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