如何设置在Django一个HTML模板会话变量?

问题描述 投票:0回答:2

我想在模板中值设置为Django的会话,然后更多钞票视图中使用。

我做这样的事情

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

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

  </html>
{% endblock %}  
django django-forms django-templates
2个回答
1
投票

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

  • 模板应该只处理演示。如果置入逻辑在模板中它应该是表示逻辑。在模板中放置的业务逻辑是违反的SoC(关注点分离)的。
  • 渲染模板往往是你在一个视图中做到这一点,是很难得到的猫背在包里,如果你已经将数据发送到浏览器(最后一件事,如果你提供的模板,但尚未发送的数据沿管路你可以更新视图,而不是试图做模板)的值。

如果你是与用户交互的传统方法是使用表格(哪怕是只提交按钮形式)做的事 - 或张贴数据使用AJAX前端服务器。


0
投票

您可以在django.core.context_processors.request添加TEMPLATE_CONTEXT_PROCESSORSsettings.py那么你可以做{{ request.session.fav_color }}确保您传递render(request."template.html",{})使模板有要求的上下文。

© www.soinside.com 2019 - 2024. All rights reserved.