django의 자체 장식기나 중간부품으로 강제 로그인을 간단하게 수행합니다

7006 단어 django
이전에django를 처음 사용했을 때 강제 로그인을 하는 것은 보기 함수에서session 액세스 로그인 상태로 강제 로그인을 하는 것이었다. 그 다음에django의 중간부품으로 강제 로그인을 할 수 있고 비교적 간단했다. 오늘 여러분께 소개한 것은django가 자체로 가지고 있는 액세서리로 강제 로그인을 하는 것이다.
# 1.     html
def login(request):
    return render(request, 'portal/login.html')
# 2.  url     
 path('login/', views.login, name='portal-login'),
# 3.  views  
#       
from django.contrib.auth.decorators import login_required
#        ,   
from django.utils.decorators import method_decorator
#                      

#          
@login_required(redirect_field_name="portal-login")
def belt_and_road(request):
    return render(request, 'portal/belt_and_road.html')
#      
@method_decorator(login_required, name='dispatch')
class ResourceListView(ListView):
    context_object_name = 'specimen'
    
    def get_queryset(self):
        self.keyword = self.request.GET.get('keyword', '')
        if len(self.keyword) != 0:
            return Specimen.objects.filter(
                Q(chinesename__contains=self.keyword) | Q(scientificname__contains=self.keyword) | Q(
                    canonicalname__contains=self.keyword) | Q(family__contains=self.keyword) | Q(
                    genus__contains=self.keyword)).order_by("id")
        return Specimen.objects.all()

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['keyword'] = self.keyword
        return context

이렇게 하면 강제 로그인이 된다.

좋은 웹페이지 즐겨찾기