【问题标题】:Get a variable out of a 'Model' -- Django Template从“模型”中获取变量——Django 模板
【发布时间】:2017-09-14 06:26:24
【问题描述】:

我有一个复杂的问题,所以我希望我能以易于理解的方式写出来。我有一个模板(index.html),我正在使用自定义标签来设置一些变量。

我可以设置这个变量:

{% set table_breaker_houses = 4 %}

我后来多次使用它,例如:

{% if forloop.counter <= table_breaker_houses %}

这就是它现在的工作方式,但我想要这样的东西:

{% for settings in Settings %}
{% set table_breaker_houses = "{{ settings.table_breaker_houses }}" %}
{% endfor %}

{% if forloop.counter <= table_breaker_houses %}

“设置”是一个有值的模型,所以我可以通过管理面板管理我的设置。

有人可以帮我吗? 感谢您到目前为止的阅读,并为我糟糕的英语感到抱歉。 :)

谨此致以最诚挚的问候, borsTiHD

【问题讨论】:

  • 不清楚你想做什么。为什么要在循环内重复设置相同的变量?您期望循环结束时的值是多少?
  • 我使用变量“table_breaker_houses”来结束一个html表并开始一个新表。在 forloop.counter 和我的变量的帮助下,我可以在特定数量的条目后结束/启动表格。 :) 并且“ {% if forloop.counter

标签: python django templates custom-tags


【解决方案1】:

您不需要引号和{{}}

直接在标签内使用变量:

{% for settings in Settings %}
   {% set table_breaker_houses = settings.table_breaker_houses %}
{% endfor %}

另外,请确保 Settings 是一个查询集或可迭代的,而不仅仅是一个模型。

【讨论】:

  • 听起来不错,但我不带它去工作。 “另外,请确保 Settings 是一个查询集或可迭代的,而不仅仅是一个模型。”你到底是什么意思?因为我认为这是我的问题。 :D
  • 嗯,您应该将设置作为您视图中的可迭代对象传递。它与原始问题无关。
  • 嗯,好的...我必须阅读更多内容,我会尝试一下。谢谢你的帮助。 :)
【解决方案2】:

好的,我的问题已经解决了。

{% set table_breaker_houses = settings.table_breaker_houses %}

这是有效的,但只能在同一个“for”循环中。在我的循环之外,我的变量是空的。我希望这对其他人也有帮助。 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-15
    • 2015-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多