본문 바로가기
기술정리/Django

Django 장식자

by bingual 2022. 10. 10.
반응형

[ 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 사용하지않고 위와같이 사용할 수도 있다.

---------------------------------------------