来自django.utils.functional import wrapps和functools import wrapps

时间:2012-09-06 06:09:33

标签: python django

django.utils.functional import wraps和functools import wrapps之间的功能有何不同?

即时通讯使用django 1.3和python 2.4.i想从发布数据中删除敏感信息,但django.views.decorators.debug仅在django 1.4中可用。所以我复制源代码并从{{3 }}。但是这个装饰器使用了python 2.4中没有的functools。所以我使用django.utils.functional import wrap而不是functools import wrapps.But仍然敏感信息出现在错误邮件中?有什么建议吗?

2 个答案:

答案 0 :(得分:1)

我认为没有区别。对于不支持functools.wraps的旧版Python,它可能是一个后端。

修改

实际上,由于最新的Django不支持任何不支持functools的Python版本,我认为它只是留下了可能的依赖性问题(在Django或Django项目中)。它实际上甚至现在直接导入functools.wrapshttp://code.djangoproject.com/svn/django/trunk/django/utils/functional.py

答案 1 :(得分:1)

这是在5年前实现的,用Django装饰器来修复天真的内省:

http://code.djangoproject.com/ticket/5701

阅读错误详情,了解其背后的动机。

它被用作:

try:
    from functools import wraps
except ImportError:
    from django.utils.functional import wraps  # Python 2.3, 2.4 fallback.