Django 'resolve': получить имя URL вместо функции view_function
Моя проблема проста, у меня есть url, я бы хотел ее разрешить, но вместо имени функции url
вместо имени функции...
Например... это urlconf:
urlpatterns = patterns('',
...
url('^/books/$', book_list, name="overview_books"),
...
)
И вот что мне хотелось бы:
>>> resolve('/books/')
'overview_books'
Знаете ли вы, как это сделать?
Ответы
Ответ 1
Используйте этот фрагмент (изначально взятый из 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'
;)
Ответ 2
В Django 1.3 и новее вы можете использовать resolve:
from django.core.urlresolvers import resolve
print resolve('/books/').url_name