Django 模板 : Comparing current url with {% url xyz %}

标签 django django-templates

我正在尝试根据用户所在的当前页面更改我的导航链接的事件选择。

我正在尝试做这样的事情:

<li {% if request.get_full_path == {% url profile_edit_personal %} %}class="current"{% endif %}><a href="{% url profile_edit_personal %}">Personal Details</a></li>

或者,我知道我可以定义做这样的事情:
<li class="{% block current %}{% endblock %}"><a href="{% url profile_edit_personal %}">Personal Details</a></li>

并添加一个 {% block current %}current{% endblock %}到每个相关模板,但如果可能的话,我更喜欢我在第一个示例中尝试实现的内容

谢谢!

最佳答案

由于您可能只需要在导航模板中执行一次此操作,因此将所有内容放在一个地方对我来说更有意义。

首先反转你的 url 名称并将它们存储在像 Timmy 建议的变量中,然后简单地在模板中比较它们:

{% url 'about_page' as about %}
...

<ul id="nav">
    <li class="{% ifequal request.path about %}active{% endifequal %}"><a href="{{about}}">About</a></li>
...

只需确保您启用了请求上下文处理器,以便您可以访问模板中的请求。通过添加 django.core.context_processors.debug 来做到这一点在您的 TEMPLATE_CONTEXT_PROCESSORS设置变量。

关于Django 模板 : Comparing current url with {% url xyz %},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7593669/

相关文章:

Django 模板回显空属性

python - 从 HTML 到 Python 文件调用函数

python - 删除 Django 模板中的引号

python - 匹配的查询不存在 Django 中的错误

python - Django Rest Framework 'list' 对象没有属性值

python - 在 Django 中,如何遍历父模型(用户)中的特定字段,包括附加子模型(用户配置文件)中的一些特定字段

javascript - 如何将字符串参数从 django 传递到 javascript 函数?

python - 可变数据类型的 Django 模型

django - 澄清 django syncdb --all 选项

python - 将 Django 项目推送到 Heroku 时出错