【问题标题】:How to create and put variable into block in Django templating engine?如何在 Django 模板引擎中创建变量并将其放入块中?
【发布时间】:2023-04-05 00:45:02
【问题描述】:

我想在“if”块中创建变量并在其他地方调用这个变量

{% for obj in events %}
{% if obj.calendar == instance %}
{% my_var = obj.title %}
    <div class="col-md-2">
         <div class="thumbnail" data-toggle="modal" data-target="#myModal">
            <div class="event_title">{{ obj.title }}</div>
            <div class="event_content">{{ obj.content }}</div>
        </div>
    </div>
   {% endif %}
{% endfor %}

【问题讨论】:

  • 你能指出哪个“其他地方”,以便我可以提供回答这个问题的代码吗?而不仅仅是一个链接。
  • 查看了 pastebin 上的代码。我会在视图而不是模板中循环,并且只在模板上下文中传递obj.calendar == instance 的对象。 IE。将该逻辑放在视图中。这将为模板提供变量obj,并使模板中的循环变得不必要。模板语法会更容易阅读。
  • 好的,我会的。非常感谢您的帮助;)
  • 当然,根据我的经验,逻辑放在“离数据库越近”,结果越容易维护。 IE。在 Django 中,模型最接近数据库,然后是视图,最后是模板。

标签: python django


【解决方案1】:

使用可用于标准 Django 模板的 with 语句。来自this answer的示例:

{% with name="World" greeting="Hello" %}     
<html>
<div>{{ greeting }} {{name}}!</div>
</html>
{% endwith %}

【讨论】:

    猜你喜欢
    • 2011-09-26
    • 2019-03-11
    • 1970-01-01
    • 2011-03-12
    • 2019-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多