2012-11-07 38 views
2

當過我在管理覆蓋change_view我會得到的代碼什麼是django中的@csrf_protect_m爲什麼使用它?

@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) 

什麼是前兩行的下面一行代碼?我應該用這個嗎?它能做什麼 ?

我剛剛開始Extending Django Admin。所以,希望你的回答將會很簡單,並帶有例子。

+2

這就是所謂的裝飾,你應該看看[這個問題](http://stackoverflow.com/questions/739654/understanding-python-decorators) – Nicolas

回答

3

@csrf_protect_m是方法裝飾器。要了解其在做什麼,請閱讀有關csrf protection的文檔

@transaction.commit_on_success也是裝飾者。要理解它在做什麼,請閱讀文檔database transactions

簡單來說,裝飾器是一種方法來包裝方法或功能的條件功能。它們環繞一個函數,修改它並返回函數。 python manual解釋了它們的寫法。

+0

謝謝你好回答:) –

相關問題