如何解决在Django 3上变成了available_attrs是什么?
首先,我是Django的新手,所以请对我好:D
我目前正在为Django 3改编.py文件,因为我拥有的文件与Django 2兼容。因此,对新版本进行了一些更改,并在文件中写入:
@wraps(view_func,assigned=available_attrs(view_func))
使用导入:
from django.utils.decorators import available_attrs
我搜索了available_attrs的改编版,很快我发现它已被替换为新版本。
ImportError : cannot import name 'available_attrs' from 'django.utils.decorators'
所以我想知道应该写些什么而不是available_attrs来使它起作用?
PS:对不起,我的英语不好
解决方法
available_attrs()
仅用于帮助在Python 2和Python 3之间架起桥梁。Django 3.0 release notes中对此进行了说明:
已删除专用的Python 2兼容性API
在Django 2.0中删除了对Python 2的支持后,并未从Django中删除了一些私有API,以便第三方应用程序可以继续使用它们,直到Python 2终止使用。
由于我们希望应用在添加对Django 3.0的支持时会降低Python 2的兼容性,因此我们目前正在删除这些API。
- [...]
django.utils.decorators.available_attrs()
-此函数返回functools.WRAPPER_ASSIGNMENTS
如果示例行中的@wraps()
是标准的functools.wraps()
decorator,那么您可以完全删除assigned=available_attrs(...)
,因为functools.WRAPPER_ASSIGNMENTS
是assigned
的默认值:
@wraps(view_func)
否则,只需直接使用functools.WRAPPER_ASSIGNMENTS
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。