기술정리/Django
Django 장식자
bingual
2022. 10. 10. 14:49
반응형
[ Decorators ]
[ Decorators ]
<django.views.decorators.http>
# user_passes_test
: 지정 함수가 False를 반환하면 login_url로 redirect
<django.contrib.auth.decorators>
# login_required
: 로그아웃 상황에서 login_url로 redirect
# permission_required
: 지정 퍼미션이 없을 때 login_url로 redirect
<django.contrib.admin.views.decorators>
# staff_member_required
: staff member가 아닐 경우 login_url로로 이동
---------------------------------------------
[ Decorators Attribute ]
# require_http_methods,
# require_GET, require_POST, require_safe
예)
: @login_required(require_GET)
<함수 구현>
@login_required
def protected_view(request):
return render(request, 'myapp/secret.html')
<클래스 구현>
@method_decorator(login_required, name='dispatch')
class PostListView(ListView):
model = Post
paginate_by = 10
post_list = PostListView.as_view()
# class PostListView(LoginRequireMixin, ListView):
# @method_decorator 사용하지않고 위와같이 사용할 수도 있다.
---------------------------------------------