制作自定义django视图装饰器(带有args)时遇到问题

杰瑞德·乔德(Jared Joke)

因此,我已经阅读了所有类似的问题,并复制了他们写的内容,但是我仍然遇到问题。所以我想要这样的东西

# Yes, I know django has one but I want to make my own
@rate_limit(seconds=10) 
myview(request, somearg, *args, **kwargs):
    # Return a response
...

def rate_limit(seconds=10):    
    def decorator(view):            
        def wrapper(request, *args, **kwargs):
            # Do some stuff
            return view(request, *args, **kwargs)       
        return wrapper
    return decorator

当我运行它时,我得到了错误

decorator() got an unexpected keyword argument 'somearg'

所以我追加装饰器以接受args和kwargs并得到此错误

# New decorator signature
def decorator(view, *args, **kwargs)

和错误

'function' object has no attribute 'status_code'

编辑:所以解决方案是使用。感谢Martijn Pieters

@rate_limit()

代替

@rate_limit
马丁·彼得斯(Martijn Pieters)

您的第一次尝试效果很好,但是您可能忘了rate_limit()装饰厂打电话

换句话说,如果执行此操作,则会发生第一个错误:

@rate_limit
def myview(request, somearg, *args, **kwargs):

代替:

@rate_limit(seconds=10)
def myview(request, somearg, *args, **kwargs):

您还真的想functools.wraps()在Django中使用的装饰器上使用,特别是如果要将其与其他Django装饰器混合使用,例如csrf_exempt

from functools import wraps

def rate_limit(seconds=10):
    def decorator(view):
        @wraps(view)
        def wrapper(request, *args, **kwargs):
            # Do some stuff
            return view(request, *args, **kwargs)
        return wrapper
    return decorator

这样可以确保将要包装的函数上设置的所有属性正确复制到包装器中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

归档自定义对象时遇到问题

来自分类Dev

如何在Django中制作自定义装饰器?

来自分类Dev

制作Firefox的自定义版本时遇到的问题

来自分类Dev

导入自定义包和模块时遇到问题?

来自分类Dev

在“设计”注册表单中添加“自定义”字段时遇到问题

来自分类Dev

我在 ListView android 中显示我的自定义对象时遇到问题

来自分类Dev

使用带有计时器的Hook更新React组件时遇到问题

来自分类Dev

在制作可比类时遇到问题

来自分类Dev

Django Rest框架中基于类的视图的自定义装饰器

来自分类Dev

类视图集的自定义装饰器

来自分类Dev

Django中自定义构建装饰器的安全性问题

来自分类Dev

Django中自定义构建装饰器的条件设置问题

来自分类Dev

在尝试使用自定义适配器在自定义待办事项列表中实现CheckBox时遇到问题?

来自分类Dev

使用 Bottle-jwt 装饰器时遇到问题(不起作用)

来自分类Dev

填充列表视图时遇到问题

来自分类Dev

具有cache_page错误的Django自定义装饰器

来自分类Dev

菊花链式Python / Django自定义装饰器

来自分类Dev

Django自定义权限方法或装饰器

来自分类Dev

菊花链式Python / Django自定义装饰器

来自分类Dev

在JavaScript中装饰实例方法时遇到问题

来自分类Dev

Android-制作自定义视图组件时出错

来自分类Dev

在ReactJs中制作计时器/倒计时代码时遇到问题

来自分类Dev

我正在制作动物穿越克隆,但渲染播放器时遇到问题

来自分类Dev

按照官方的Django教程并制作完模板后,我在进行int转换时遇到问题

来自分类Dev

按照官方的Django教程并制作完模板后,我在进行int转换时遇到问题

来自分类Dev

使用带有参数的自定义绑定适配器侦听器方法的Android自定义视图

来自分类Dev

带有分割视图的自定义相机视图

来自分类Dev

制作带有下划线的自定义 UISearchBar

来自分类Dev

带有按钮 Onclick 的自定义形状回收器视图

Related 相关文章

  1. 1

    归档自定义对象时遇到问题

  2. 2

    如何在Django中制作自定义装饰器?

  3. 3

    制作Firefox的自定义版本时遇到的问题

  4. 4

    导入自定义包和模块时遇到问题?

  5. 5

    在“设计”注册表单中添加“自定义”字段时遇到问题

  6. 6

    我在 ListView android 中显示我的自定义对象时遇到问题

  7. 7

    使用带有计时器的Hook更新React组件时遇到问题

  8. 8

    在制作可比类时遇到问题

  9. 9

    Django Rest框架中基于类的视图的自定义装饰器

  10. 10

    类视图集的自定义装饰器

  11. 11

    Django中自定义构建装饰器的安全性问题

  12. 12

    Django中自定义构建装饰器的条件设置问题

  13. 13

    在尝试使用自定义适配器在自定义待办事项列表中实现CheckBox时遇到问题?

  14. 14

    使用 Bottle-jwt 装饰器时遇到问题(不起作用)

  15. 15

    填充列表视图时遇到问题

  16. 16

    具有cache_page错误的Django自定义装饰器

  17. 17

    菊花链式Python / Django自定义装饰器

  18. 18

    Django自定义权限方法或装饰器

  19. 19

    菊花链式Python / Django自定义装饰器

  20. 20

    在JavaScript中装饰实例方法时遇到问题

  21. 21

    Android-制作自定义视图组件时出错

  22. 22

    在ReactJs中制作计时器/倒计时代码时遇到问题

  23. 23

    我正在制作动物穿越克隆,但渲染播放器时遇到问题

  24. 24

    按照官方的Django教程并制作完模板后,我在进行int转换时遇到问题

  25. 25

    按照官方的Django教程并制作完模板后,我在进行int转换时遇到问题

  26. 26

    使用带有参数的自定义绑定适配器侦听器方法的Android自定义视图

  27. 27

    带有分割视图的自定义相机视图

  28. 28

    制作带有下划线的自定义 UISearchBar

  29. 29

    带有按钮 Onclick 的自定义形状回收器视图

热门标签

归档