0

from django.utils.functional import wraps 和 from functools import wraps 在功能上有什么区别?

我使用 django 1.3 和 python 2.4。我想从帖子数据中删除敏感信息,但 django.views.decorators.debug 仅在 django 1.4 中可用。所以我复制源代码并从https://bitbucket 放入我的项目。 org/orzel/django-1.4-production/src/507b10c2c0e3/django/views/decorators/debug.py。但是这个装饰器使用了python 2.4中不可用的functools。所以我使用django.utils.functional import wraps而不是from functools import wraps。但是敏感信息仍然出现在错误邮件中?有什么建议么?

4

2 回答 2

1

我不认为有区别。它可能是不支持functools.wraps.

编辑

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

于 2012-09-06T06:21:18.527 回答
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.
于 2012-09-06T06:27:40.877 回答