django中的@csrf\u protect\m是什么?为什么使用它?

django中的@csrf\u protect\m是什么?为什么使用它?,django,django-admin,Django,Django Admin,当我在admin中重写change_视图时,我将得到以下代码行 @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) 前两行代码是什么??我

当我在admin中重写change_视图时,我将得到以下代码行

@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管理。因此,希望您的答案简单明了,并带有示例。

@csrf\u protect\u m
是一个方法装饰器。要了解其功能,请阅读上的文档

@transaction.commit\u on\u success
也是一个装饰程序。要了解其功能,请阅读上的文档


简单来说,decorator是围绕方法或函数包装条件功能的一种方法。它们环绕函数,修改它,然后返回函数。这本书解释了它们是如何写的。

这本书叫装饰书,你应该看看