【问题标题】:In Django, how can I use a request to determine its URLconf viewname?在 Django 中,如何使用请求来确定其 URLconf 视图名称?
【发布时间】:2011-09-08 22:27:24
【问题描述】:

我可以从request.path获取视图功能:

from django.core.urlresolvers import resolve
view_func, _args, _kwargs = resolve(request.path)

但是,我需要更多的东西。我需要获取一个视图名称列表,例如 ['edit_foo', 'delete_foo'],并确定当前 URL 是否是其中之一。

我使用来自 django.core.urlresolvers 的一些内部结构提出了一些想法,但我想要一些高效且有点正确的东西(即,不是 hacky,理想地记录在案)。

【问题讨论】:

  • 为什么不能有视图列表?
  • @Ignacio - 你的意思是,实际可调用视图函数的列表?

标签: python django django-urls


【解决方案1】:

写完这么长的问题后,我想通了:/(碰巧遇到这个问题的其他人发帖)。很简单:

>>> resolve(request.path).url_name
'edit_foo'

我一定是误会了 resolve 函数的用处,它非常有用。

【讨论】:

  • 你能链接到你在文档中找到的地方吗? 编辑: 没关系,这里是:docs.djangoproject.com/en/dev/topics/http/urls/#s-resolve AND 这仅适用于 Django 1.3+。以前的版本没有此功能。
  • @chrisdpratt - 啊,好点。我将主干用于个人项目,值得注意。
猜你喜欢
  • 1970-01-01
  • 2015-10-20
  • 2013-02-01
  • 2022-08-02
  • 2023-03-29
  • 2017-09-16
  • 2021-04-24
  • 2019-08-15
相关资源
最近更新 更多