为什么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。允许开发人员直接从模板中引用视图函数是不对的。
有谁知道为什么做出这个决定?
答案 0 :(得分:2)
将虚线视图函数名称传递给{%url%}模板标记只是模板标记在Django的早期阶段所采用的形式,然后才能命名URL。它仍然受到支持,但正如您所指出的,您可能不会在现代应用程序中使用它。
答案 1 :(得分:0)
URL只是映射的映射。因此,在模板中,使用命名URL只是间接引用视图。
例外情况是单个视图由多个URL映射到的位置。
另请注意,他们计划在1.5中change the syntax of the url tag。它将上下文变量作为参数,而不是字符串。它仍将采用视图或命名URL。