来自django 1.3 / dev的新url语法

时间:2011-08-17 10:20:20

标签: django django-templates

为什么django核心开发人员允许url templatetag直接指向django视图功能? (参考 - https://docs.djangoproject.com/en/dev/ref/templates/builtins/#url

{% load url from future %}

{# 1st method: pointing to a view function #}
{% url 'app_views.client' %}

{# 2nd method: pointing to a named url #}
{% url 'myapp:view-name' %}

已经可以在urls.py中命名url,因此使用第二种方法指向特定的url。允许开发人员直接从模板中引用视图函数是不对的。

有谁知道为什么做出这个决定?

2 个答案:

答案 0 :(得分:2)

将虚线视图函数名称传递给{%url%}模板标记只是模板标记在Django的早期阶段所采用的形式,然后才能命名URL。它仍然受到支持,但正如您所指出的,您可能不会在现代应用程序中使用它。

答案 1 :(得分:0)

Django中的

URL只是映射的映射。因此,在模板中,使用命名URL只是间接引用视图。

例外情况是单个视图由多个URL映射到的位置。

另请注意,他们计划在1.5中change the syntax of the url tag。它将上下文变量作为参数,而不是字符串。它仍将采用视图或命名URL。