【问题标题】: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'

你知道有什么办法吗?

【问题讨论】:

    标签: python django django-urls


    【解决方案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
      猜你喜欢
      • 2020-11-12
      • 1970-01-01
      • 2014-12-01
      • 1970-01-01
      • 2014-04-09
      • 2021-09-10
      • 2021-08-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多