【问题标题】:Can I use the Django `URL` template tag inside other logic?我可以在其他逻辑中使用 Django `URL` 模板标签吗?
【发布时间】:2015-09-02 11:27:42
【问题描述】:

这是为了检查,当用户是匿名的并且当前在登录页面上时,他们不会在导航中看到重复的登录表单(通常会在该位置):

{% url 'auth_login' as auth_url %}
{% if not auth_url in request.get_full_path %}
    # not on login page, so show login in nav
{% endif %}

url必须先单独使用吗?或者它可以与if一起使用吗?

【问题讨论】:

    标签: django django-templates templatetags


    【解决方案1】:

    如果您只是想检查用户是否匿名,那么您可以使用is_anonymous

    请注意文档声明您应该使用is_authenticated,因此您可能希望同时使用两者。

    {% if user.is_anonymous %}
        <a href="{% url 'auth_login' %}">Log In</a>
    {% else %}
        <a href="{% url 'logout_url' %}">Signed in as {{ user.username }} (Log Out)</a>
    {% endif %}
    

    【讨论】:

    • 这很有帮助,但如果有使用 urlif 的内联方式,我会追求。改写内容以使其更清晰
    • @StringsOnFire - AFAIK,没有,因为您需要在 if 语句中使用变量。当然,我忽略了实际上将它们写在同一行。
    猜你喜欢
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    • 2011-05-02
    • 2011-06-10
    • 1970-01-01
    • 1970-01-01
    • 2013-05-28
    • 2022-11-25
    相关资源
    最近更新 更多