Django:URL conf、url 模板标签的最佳实践
Posted
技术标签:
【中文标题】Django:URL conf、url 模板标签的最佳实践【英文标题】:Django: Best Practice for URL conf, url template tag 【发布时间】: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 文档中找不到“这样做”,但如果有人写过这个,我很乐意阅读。
【问题讨论】:
【参考方案1】:我总是用名字。
除了你提到的路径问题之外,如果你有两个指向同一个视图的 URL,你也会遇到问题。
【讨论】:
以上是关于Django:URL conf、url 模板标签的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章
django 模板标签 url 仅在最后一个空 url 模式时有效