Django 'resolve':获取 url 名称而不是 view_function
Posted
技术标签:
【中文标题】Django \'resolve\':获取 url 名称而不是 view_function【英文标题】:Django 'resolve' : get the url name instead of the view_functionDjango 'resolve':获取 url 名称而不是 view_function 【发布时间】:2011-03-11 01:14:57 【问题描述】:我的问题很简单,我有一个 url,我想解决它,但是获取 url
名称而不是与之关联的视图函数...
例如...这是 urlconf :
urlpatterns = patterns('',
...
url('^/books/$', book_list, name="overview_books"),
...
)
这就是我想要的:
>>> resolve('/books/')
'overview_books'
你知道有什么办法吗?
【问题讨论】:
【参考方案1】:使用这个sn-p(最初取自djangosn-ps.org/sn-ps/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
【讨论】:
在你有的情况下也很有用:resolver = resolve('/books/39/')
然后requested_book_id = resolver.args[0]
在较新版本的 django 中,它的 from django.urls import resolve以上是关于Django 'resolve':获取 url 名称而不是 view_function的主要内容,如果未能解决你的问题,请参考以下文章
vue 带参数跳转打开新窗口 $router.resolve 参数不在url中