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