Link 到django cms中的一个页面,首先检查它是否存在
Link to a page in django cms, first check if it exists
我经常在 django 模板中使用 django-cms 做这样的事情:
{% load cms_tags %}
<a href="{% page_url 'imprint' %}">Imprint</a>
在生产环境中,这会自动失败,并且 href 属性为空。在开发过程中,我被迫插入 ID 为 "imprint" 的页面,否则会出现 "DoesNotExist" 异常。
如何改善这种情况?也许我正在寻找类似
的东西
{% if 'imprint'|cms_page_exists %}
...the link and stuff...
是否有针对此(并非很少)用例的已知最佳实践?还是大家先按图使用?
您可以将标记结果分配给变量,然后检查它是否为空:
{% page_url 'imprint' as url %}
{% if url %}
<a href="{{ url }}">Imprint</a>
{% endif %}
其他方式意味着创建您自己的模板标签或过滤器,因此以上是最简单的恕我直言。
另请参阅 docs.
中的示例
我经常在 django 模板中使用 django-cms 做这样的事情:
{% load cms_tags %}
<a href="{% page_url 'imprint' %}">Imprint</a>
在生产环境中,这会自动失败,并且 href 属性为空。在开发过程中,我被迫插入 ID 为 "imprint" 的页面,否则会出现 "DoesNotExist" 异常。
如何改善这种情况?也许我正在寻找类似
的东西{% if 'imprint'|cms_page_exists %}
...the link and stuff...
是否有针对此(并非很少)用例的已知最佳实践?还是大家先按图使用?
您可以将标记结果分配给变量,然后检查它是否为空:
{% page_url 'imprint' as url %}
{% if url %}
<a href="{{ url }}">Imprint</a>
{% endif %}
其他方式意味着创建您自己的模板标签或过滤器,因此以上是最简单的恕我直言。 另请参阅 docs.
中的示例