基于类的视图在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 confs的最佳做法是什么?
到目前为止,我发现使用path.to.view方法更好,因为它是干净的命名空间。但是,基于类的视图看起来越来越好,使用url name是一种更好的方法吗?在这种情况下,命名空间完全依赖于应用程序开发人员设置的名称属性,其方式是将网址名称与其他应用程序分开...
思考?我在Django文档中找不到“这样做”,但如果有人写过这个,我很乐意阅读它。
答案 0 :(得分:8)
我总是使用名字。
除了你提到的路径问题外,如果你有两个指向同一视图的网址,你也会遇到问题。