我是django的新手,我很困惑@login_required和@method_decorator(login_required)Django 之间有什么区别 ,我们应该使用哪一个.提前致谢.
使用@login_required基于功能的视图:
@login_required
def my_view(request):
return HttpResponse('hello')
Run Code Online (Sandbox Code Playgroud)
您可以使用@method_decorator(login_required)基于类的视图,
@method_decorator(login_required, name='dispatch')
class MyView(TemplateView):
template_name = 'hello.html'
@method_decorator(login_required)
def dispatch(self, *args, **kwargs):
return super(MyView, self).dispatch(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
但是使用它可能更简单LoginRequiredMixin:
from django.contrib.auth.mixins import LoginRequiredMixin
class MyView(LoginRequiredMixin, TemplateView):
template_name = 'hello.html'
Run Code Online (Sandbox Code Playgroud)