首页 > 解决方案 > 如何在 Django 的 HTML 模板中设置会话变量?

问题描述

我正在尝试在模板中为 Django 会话设置值,然后可以在视图中使用。

我正在做这样的事情

{% block body %}
    <html>
     {%  request.session.fav_color="red"  %}

    <div> Is your favorite color {{ request.session.fav_color}} ?</div>

  </html>
{% endblock %}  

标签: djangodjango-formsdjango-templates

解决方案


这可能不是一个好主意有几个原因:

  • 模板应该只处理演示文稿。如果您在模板中放置逻辑,它应该是表示逻辑。将业务逻辑放在模板中是违反 SoC(关注点分离)的。

  • 渲染模板通常是您在视图中做的最后一件事,因此如果您已经将数据发送到浏览器(并且如果您渲染了模板但尚未发送数据,则很难让猫回到包里)在管道中,您可以只更新视图中的值,而不是尝试在模板中进行更新)。

如果您与用户交互,传统的方式是使用表单(即使它是只有提交按钮的表单) - 或使用 AJAX 将数据发布到前端的服务器。


推荐阅读