전처리, 혹은 사용자가 중복으로 필요한 기능을 모아서 데코레이터로 작성해 두는 경우가 많다. 대부부의 함수에 적용시키거나 특정 함수에서 필요한 기능을 부분부분 적용시키는 데 최적이다.
일단 만들고 나면 대상 함수, 클래스에 적용하는 방법을 알아야 한다. Fuction based view 와 Class based view 에 적용 방법이 각각 다르다.
아래 사이트에 아주 잘 설명이 되어 있다. 원본 사이트로 들어가서 보시면 제 맘에 부담이 덜하겠네요 공부하는 것을 기록해 두는 용도지만 작성자의 노고를 위해서는 사이트로 가서 봐줘요
https://parkhyeonchae.github.io/2020/03/25/django-project-05/#2-decorator-%EC%A0%81%EC%9A%A9
그래도 정리해보면,
일반적인 FBV 에서 적용은 그냥 @데코레이터이름
@login_message_required
def example_def(request):
pass
CBV 에서는 약간 다르네
method_decorator 란 놈을 import 해서, 이를 이용해서 적용할 수 있네.
from django.utils.decorators import method_decorator
@method_decorator(logout_message_required, name='dispatch')
class ExampleClass(View):
pass
class ExampleClass(View):
pass
이상.