2010-07-02 18 views
14

Sorunum basit, bir URL'im var, onu çözmek istiyorum, ancak onunla ilişkili görünüm işlevi yerine url adını al ...Django 'resol': view_function yerine url adı olsun

Örneğin

... Bu urlconf geçerli:

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

Ve bu istediğim budur:

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

bunu yapmak için herhangi bir yol biliyor musunuz?

cevap

3

Bu snippet'i kullan (orijinal olarak 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
Django'ya 1.3 in

ve daha yeni Eğer resolve işlevi kullanabilir:

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