python - 链接到django cms中的页面,首先检查是否存在

标签 python django django-templates django-cms

我经常在 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 中的示例.

关于python - 链接到django cms中的页面,首先检查是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34919145/

相关文章:

python - 尝试在 django 中迁移 mysql 数据库时出现 ConnectionDoesNotExist 错误

python - 创建列表以填充组合框时出错

python - 在文档分析中计算句子分数时应该计算重复词吗?

python - 相当于 Linux 上的 GetTickCount()

Python subprocess.Popen 与 var/args

python - Django 帖子中的 "read more"

python | docker | Django | django.core.exceptions.ImproperlyConfigured 错误

html - HTML中的Django Haystack搜索

django - 如何将 POST 方法写入 Django 中的标签

django - 将列表呈现为 django 模板中的 2 列 html 表