2

当我在管理员中覆盖 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) 

前两行代码是什么?我应该用这个吗?它能做什么 ?

我刚刚开始扩展 Django Admin。所以希望你的答案很简单,并举例说明。

4

1 回答 1

3

@csrf_protect_m是一个方法装饰器。要了解它的作用,请阅读有关csrf保护的文档

@transaction.commit_on_success也是一个装饰师。要了解它的作用,请阅读有关数据库事务的文档

简单来说,装饰器是一种将条件功能包装在方法或函数周围的方法。他们包装一个函数,修改它,然后返回这个函数。python 手册对它们的编写方式进行了解释。

于 2012-11-07T08:35:26.897 回答