当前位置: 首页 > 面试题库 >

如何在Django中编写自定义装饰器?

柯昱
2023-03-14
问题内容

问题

@is_premium_user
def sample_view:
          .......
          ......

我希望某些观点仅适用于网站的高级用户。
在项目中的各种应用程序中如何使用此装饰器?


问题答案:

你不必为此编写自己的装饰器,就像user_passes_testDjango中已经包含的那样。

还有一个group_required_decorator扩展此装饰器的代码段(),该代码段非常适合你的用例。

而且,要(重新)使用装饰器,只需将装饰器放在路径中的模块中,即可从任何其他模块导入它。



 类似资料:
  • 我想在日志文件的开头写入自定义头行。自定义头是日期/时间,XML文件名, 在log4j中,我可以通过扩展PatternLayout来创建自定义头。 我为自定义头包含了PatternLayout的log4j属性config和子类CustomFileHeaderLayout。工作很好。 log4j.属性

  • 我想为Atom编写一个命令,它由两个或多个预先存在的命令组成,比如“Select Line”和“Cut”。我该怎么做?

  • Nest 是基于 装饰器 这种语言特性而创建的。在很多常用的编程语言中 装饰器 都是一个很大众的概念,但在 JavaScript 语言中这个概念却比较新。所以为了更好地理解装饰器是如何工作的,你应该看看 这篇 文章。下面给出一个简单的定义: ES2016 的装饰器是一个可以将目标对象,名称和属性描述符作为被修饰方法(returns function)的参数的表达式。你可以通过装饰器前缀 @ 来使用

  • 我希望每个请求都能收到一些信息,因此我认为与其为每个请求提供一个函数并分别从请求中获取这些信息,不如使用一个过滤器<所以每一个请求都会通过这个过滤器,我就能得到我想要的 问题是:如何编写自定义筛选器 假设它不像任何预定义的Spring Security过滤器,它是全新的。

  • 问题内容: 我正在使用Python的应用程序编写一些测试用例。现在,我需要将一个对象列表与另一个对象列表进行比较,以检查第一个列表中的对象是否符合我的期望。 如何编写自定义方法?应该怎么办?是否应该在失败时引发例外?如果是,哪个例外?以及如何传递错误消息?错误消息应该是unicode字符串还是字节字符串? 不幸的是,官方文档没有解释如何编写自定义断言方法。 如果您需要一个真实的示例,请继续阅读。

  • 问题内容: 我不确定为什么跟随decorator [validate_request]无效。编写这种验证装饰器的正确方法是什么? 错误:- 应该如何以一种更加惯用的方式完成??? 问题答案: 这是你的装饰器的外观 你会这样称呼它