Django 'resolve':获取URL名称而非视图函数
我的问题很简单,我有一个网址,我想要解析它,但是我得到的是这个网址的名字,而不是和它相关联的视图函数...
举个例子... 这是网址配置:
urlpatterns = patterns('',
...
url('^/books/$', book_list, name="overview_books"),
...
)
而我想要的是:
>>> resolve('/books/')
'overview_books'
你知道有什么方法可以做到这一点吗?
2 个回答
33
在Django 1.3及更新版本中,你可以使用resolve这个函数:
from django.core.urlresolvers import resolve
print resolve('/books/').url_name
4
使用这个代码片段(最初来自 djangosnippets.org/snippets/1378/);
>>> from my_projects.tools import resolve_to_name
>>> print resolve_to_name('/some/url')
'app.views.view'
>>> print resolve_to_name('/some/other/url')
'this_is_a_named_view'
;)