【问题标题】:Check if a variable is defined in django templating language [closed]检查是否在 django 模板语言中定义了变量[关闭]
【发布时间】:2013-07-14 08:00:44
【问题描述】:

我使用的是 django 1.5,我需要检查是否定义了变量(如果定义了变量但没有、0、“”等......)。比如:

{% ifexists a_variable %}
    <p> Hey the variable exists </p>
{% endifexists %}

我不知道如何最好地做到这一点......

【问题讨论】:

  • 这对我来说似乎是一个合理的问题,关于如何区分在上下文中设置为假的变量和根本没有设置的变量之间的区别。这当然不是题外话。

标签: python django django-templates


【解决方案1】:

请阅读documentation

{% if %} 标签评估一个变量,如果该变量为“真” (即存在...

{% if athlete_list %}
    Number of athletes: {{ athlete_list|length }}
{% elif athlete_in_locker_room_list %}
    Athletes should be out of the locker room soon!
 {% else %}
    No athletes.
{% endif %}

您可能还想查看writing public views 的相当方便的 Django 教程。

【讨论】:

  • 如果 player_list 设置为 [] 或 None 肯定会转到 else 吗?这不是我想要的,我需要它来判断是否设置了变量(参见codepad.org/OJbkRWYN
  • @Cucwx 为什么要将可能未设置的变量发送到模板?无论哪种方式,如果变量无效(未设置),Django 会将其设置为TEMPLATE_STRING_IF_INVALID 的值,您可以将其设置为其他值,然后检查personcoach 是否等于该值;见Invalid template variables。虽然这并不是一个好主意(正如文档本身所表达的那样)。
  • @SamStudio8 的评论应该取代答案,因为它更有用。
猜你喜欢
  • 2012-10-07
  • 2010-09-22
  • 2012-01-20
  • 2021-04-21
  • 2015-05-01
  • 2020-05-30
  • 1970-01-01
  • 2015-06-19
  • 2013-06-07
相关资源
最近更新 更多