0

django.utils.functional インポート ラップと functools インポート ラップの機能の違いは何ですか?

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 を使用します。そのため、functools import wraps の代わりに django.utils.functional import wraps を使用します。それでも、機密情報がエラー メールに表示されますか? 助言がありますか?

4

2 に答える 2

1

違いはないと思います。これはおそらく、をサポートしていない古いバージョンのPythonのバックポートです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

これは、Django Decorators を使用して単純なイントロスペクションを修正するために 5 年前に実装されました。

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 に答える