프로그래밍/Python

Django에서 Python Decorator 사용하기

2020. 7. 21. 11:14

리얼루다가냐?

 데코레이터를 사용하면 여러줄의 코드를 여러번 작성할 필요없이 한줄만으로 특정한 메커니즘을 실행할 수 있다. 

 

 

from django.http import HttpResponse

def only_admin(f):
    def check(request, *args, **kwargs):
        try:
            if request.user.admin is not True:
                return JsonResponse({
                    'status': False,
                    'message': 'admin permission is required'
                })
        except:
            return JsonResponse({
                'status': False,
                'message': '\'sign in\' is required'
            })
        return f(request, *args, **kwargs)
    return check


@only_admin
def add_target(request):
    return HttpResponse('')

 

 대충 이런식