Django 中间件和获取 View 名称?

标签 django

我正在尝试用 Django 编写我的第一个中间件。

class RefreshBalance:

    def process_view(self, request, view_func, view_args, view_kwargs):
        pass

我想检测 View 是否被调用并刷新余额。我可以看到“ View ”参数,但不知道如何使用它?例如:

if view == "login.dashboard:
   pass

我如何找出正在调用的 View ?

最佳答案

来自middleware documentation :

process_view(self, request, view_func, view_args, view_kwargs) request is an HttpRequest object. view_func is the Python function that Django is about to use. (It’s the actual function object, not the name of the function as a string.)

所以你需要做类似的事情:

from login import dashboard


if view_func.__name__ == dashboard.__name__:
    pass

关于Django 中间件和获取 View 名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17025677/

相关文章:

python - 类型错误 : count() takes at least 1 argument (0 given)

python - 如何将 django QueryDict 更改为 Python Dict?

python - django allauth 电子邮件登录 - 总是错误

python - 无法使用 Windows 命令提示符创建 Django 项目

django - 语法正则表达式无效

python - Django tables2 将时间显示为上午/下午而不是 24 小时标准

python - Django Http404 和 DEBUG 模式捕获 22

python - 将日期/时间保存在模型 Django 的列表中

python - `context_instance=RequestContext(request)` 在 django 中使用 cookies

python - Django 查询对 ArrayFields 的长度求和