【问题标题】:How to call django decorator only once per session?如何在每个会话中只调用一次 django 装饰器?
【发布时间】:2017-04-24 20:32:39
【问题描述】:

我只想在每个会话中调用自定义装饰器一次

def cust_decorator(function):
    def wrapper(request,*args, **kwargs):
       ........
       .......

wrapper.__doc__ = function.__doc__
wrapper.__name__ = function.__name__
return wrapper 

我只想为特定用户在每个会话中调用一次 cust_decorator 装饰器

【问题讨论】:

  • 视图装饰器在每次调用视图时运行,因此它们可能不是让某些东西在每个会话中运行一次的最佳方式。您可以在会话中存储一个标志,检查装饰器中的标志,并且仅在未设置标志时运行代码。
  • 没有别的办法了吗??
  • 你这样做的真正目的是什么?
  • 我希望每个会话只显示一次警报

标签: python django session


【解决方案1】:

您可以在第一次调用装饰器时设置会话变量并检查该值以确定是否应再次显示警报。另一种方法是编写自己的中间件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-24
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    • 1970-01-01
    • 2012-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多