2

adminでchange_viewをオーバーライドすると、次のコード行が表示されます

@csrf_protect_m
@transaction.commit_on_success
def change_view(self, request, object_id, extra_context=None):
    return admin.ModelAdmin.change_view(self, request, object_id, extra_context=extra_context) 

コードの最初の2行は何ですか?これを使うべきですか?それは何をしますか?

DjangoAdminの拡張を始めたばかりです。ですから、あなたの答えが単純で例を挙げてくれることを願っています。

4

1 に答える 1

3

@csrf_protect_mメソッドデコレーターです。その動作を理解するには、 csrf 保護に関するドキュメントをお読みください

@transaction.commit_on_successデコレーターでもあります。その動作を理解するには、データベース トランザクションに関するドキュメントをお読みください。

簡単に言えば、デコレーターは、メソッドまたは関数の条件付き機能をラップする方法です。関数をラップし、それを変更して、関数を返します。python manualには、それらがどのように記述されているかの説明があります。

于 2012-11-07T08:35:26.897 に答える