2010-07-02 19 views
14

Mi problema es simple, tengo una url, me gustaría resolverlo, pero obtenga el nombre url en lugar de la función de visualización asociada ...Django 'resolver': obtener el nombre de la url en lugar de la función view

Por ejemplo ... esto es URLconf:

urlpatterns = patterns('', 
... 
    url('^/books/$', book_list, name="overview_books"), 
... 
) 

Y esto es lo que me gustaría:

>>> resolve('/books/') 
'overview_books' 

¿Conoce alguna manera de hacer esto?

Respuesta

3

Utilice este fragmento (originalmente tomado de 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' 

;)

28

En Django 1.3 y posteriores puede utilizar resolve función:

from django.core.urlresolvers import resolve 
print resolve('/books/').url_name 
Cuestiones relacionadas