2019年4月26日
問題:
基于類的視圖使用裝飾器
@login_required時報錯
報錯代碼:
class views:
@login_required
def sign_out_view(self, request):
context = None
return render(request, self.__sign_out_templates, context=context)
pass
報錯信息:
AttributeError: 'view' object has no attribute 'user'
參考資料:
官方文檔(基于類的視圖)https://docs.djangoproject.com/zh-hans/2.2/topics/class-based-views/intro/
Decorating class-based views
解決辦法:
使用
from django.utils.decorators import method_decorator方法修飾器
改正后代碼:
from django.contrib.auth.decorators import login_required
from django.utils.decorators import method_decorator
class views:
@method_decorator(login_required)
def sign_out_view(self, request):
context = None
return render(request, self.__sign_out_templates, context=context)
pass
解決