django22 views class-base decorators

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

解决

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容