Django“resolve”:获取url名称而不是view函数

2024-05-23 19:12:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我的问题很简单,我有一个url,我想解决它,但是得到的是url名称,而不是与之关联的view函数。。。

例如。。。这是urlconf:

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

这就是我想要的:

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

你知道怎么做吗?


Tags: 函数name名称viewurloverviewbookslist
2条回答

使用这个片段(最初取自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'

;)

在Django 1.3及更新版本中,可以使用resolve函数:

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

相关问题 更多 >