我正在尝试在模板中为Django会话设置值,然后在视图中使用posible。
我正在做这样的事情
{% block body %}
<html>
{% request.session.fav_color="red" %}
<div> Is your favorite color {{ request.session.fav_color}} ?</div>
</html>
{% endblock %}
答案 0 :(得分:1)
这可能不是一个好主意,有几个原因:
模板应仅处理演示文稿。如果要在模板中放置逻辑,则应将其表示为逻辑。在模板中放置业务逻辑违反了SoC(关注点分离)。
渲染模板通常是视图中要做的最后一件事,因此如果您已经将数据发送到浏览器(并且渲染了模板),则很难将猫放回书包中但尚未通过管道发送数据,您可以只更新视图中的值,而不必尝试在模板中进行操作。
如果要与用户进行交互,传统的方式是使用表单(即使它是仅带有“提交”按钮的表单)-或使用AJAX将数据发布到前端的服务器中。
答案 1 :(得分:0)
您可以将django.core.context_processors.request
添加到TEMPLATE_CONTEXT_PROCESSORS
中的settings.py
中,然后可以执行{{ request.session.fav_color }}
以确保您传递render(request."template.html",{})
,以便模板具有请求上下文。