【问题标题】:Django Get name of current view as a stringDjango 以字符串形式获取当前视图的名称
【发布时间】:2018-04-09 22:23:53
【问题描述】:

是否可以以字符串形式获取 Django 视图的名称? 我搜索了很多,但找不到答案。

【问题讨论】:

  • 没有任何内置功能可以做到这一点。您可以获取当前应用程序,但您必须编写上下文处理器或其他东西来获取视图。
  • request.resolver_match.func.__name__ 在视图中可以工作,但你应该说明你为什么需要它,也许有更好的模式
  • 非常感谢@PRMoureu,它的作用就像一个魅力。
  • 怎么样,self.get_view_name()? (在CBV中)

标签: python django view


【解决方案1】:

试试

request.view

例子:

if request.view == "my_view":
    #do things

【讨论】:

    【解决方案2】:

    如果您从resolve 获得作为函数的视图,您可以像这样检查它:

    view, _, _ = resolve(request.path)
    view_name = view.__name__
    

    【讨论】:

      【解决方案3】:

      上述方法对我不起作用,但我能够通过在 request 上运行 dir 找到一些解决方案。

       request.resolver_match.view_name
      

      似乎给了我正确的视图名称。

      【讨论】:

      • 这个对我有用?
      猜你喜欢
      • 2011-09-30
      • 2015-05-27
      • 2014-05-23
      • 2012-11-16
      • 2010-09-15
      • 2015-03-18
      • 1970-01-01
      相关资源
      最近更新 更多