【发布时间】:2011-12-01 15:24:48
【问题描述】:
随着基于类的视图在 Django 中变得更好,我在实现基于类的视图时遇到了“最佳实践”问题。它基本上归结为URL template tag。
给定一个这样的 urls.py:
urlpatterns = patterns('some_app.views',
url(r'^$', 'index', name='some_app_index')
)
该标签可以采用任一路径到视图:
{% url some_app.views.index %}
或网址名称:
{% url some_app_index %}
现在,使用基于类的 url conf,最终会得到这样的 url:
from some_app.views import Index
urlpatterns = patterns('',
url(r'^$', Index.as_view(), name='some_app_index')
)
这意味着使用 {% url some_app.views.index %} 不再有效,但 {% url some_app_index %} 仍然有效。 (而且{% url some_app.views.Index.as_view %} 似乎不是一个解决方案)。
那么,我的问题是,从模板中引用 URL conf 的最佳做法是什么?
到目前为止,我相信使用 path.to.view 方法会更好,因为它是干净的命名空间。然而,随着基于类的视图越来越好,使用url name 是不是更好?在这种情况下,命名空间完全取决于应用程序开发人员设置的名称属性,以将 url 名称与其他应用程序分开......
想法?我在 Django 文档中找不到“这样做”,但如果有人写过这个,我很乐意阅读。
【问题讨论】:
标签: django django-views django-urls django-templates