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'模板标签错误

django url 模板标签的问题,% url %

模板 url 标签无法识别 Django 命名的 url

django 模板标签 url 仅在最后一个空 url 模式时有效

是否可以将查询参数传递给 Django % url % 模板标签?

Django:在 URL 模板标签中保留 GET 参数