【问题标题】:How to handle dynamically added variables in Django template如何在 Django 模板中处理动态添加的变量
【发布时间】:2020-09-01 12:11:17
【问题描述】:

我正在尝试构建一个 Django 模板来动态处理可能存在或不存在的变量。

这是我使用的模式类型:

{%  block unsubscribe %}
        {%  if unsubscribe_uuid is not None %}
            <a href="http://www.example.com/core/unsubscribe/{{ unsubscribe_uuid }}/" style="
                font-size: .9em;
                color: rgba(255, 255, 255, 0.5);">
                unsubscribe</a> |
        {%  endif %}
    {% endblock %}

这会引发错误/异常/警告:

django.template.base.VariableDoesNotExist: Failed lookup for key [unsubscribe_uuid]

我也试过用这一行检查变量:

{%  if unsubscribe_uuid %}

如果模板中的变量不存在,我如何检查它们而不抛出此错误?

【问题讨论】:

  • {% if unsubscribe_uuid %} {% end if %} 似乎是正确的方法,有趣的情况,以前从未见过。只是也许这个可以以某种方式提供帮助? stackoverflow.com/questions/35787497/…
  • @AdilShirinov 谢谢。我在搜索中没有找到该页面。他们的解决方案没有奏效。他们有一个链接,说明这是一个已知问题,由于解决方案导致更多问题,因此无意修复它。 code.djangoproject.com/ticket/28172

标签: django django-templates


【解决方案1】:

我建议这样做:

{%  block unsubscribe %}
  {% with unsubscribe_uuid as uuid %}
     {%  if uuid is not None %}
       <a href="http://www.example.com/core/unsubscribe/{{uuid}}/" style="font-size: .9em;color: rgba(255, 255, 255, 0.5);">unsubscribe</a> |
     {%  endif %}
 {% endwith %}
{% endblock %}

【讨论】:

  • 感谢您的建议。不幸的是,它并没有阻止警告。也许这是我的方法。知道这是否是仅在需要时尝试加载子模板的最佳方式吗?
猜你喜欢
  • 1970-01-01
  • 2019-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-21
  • 1970-01-01
  • 1970-01-01
  • 2017-08-29
相关资源
最近更新 更多