커스텀 데코레이터 질문(decorators.py)
286
작성한 질문수 2
decorators.py 에서 decorator를 커스텀 할 때
마지막의 return decorated는 정해 decorator 함수를 생성할 때 정해져 있는 규칙인가요??
def account_ownership_required(func):
def decorated(request, *args , **kwargs):
user = User.objects.get(pk=kwargs["pk"])
if not user == request.user:
return HttpResponseForbidden()
return func(request, *args, **kwargs)
return decorated
답변 1
1
안녕하세요!
질문 확인했습니다.
마지막 코드에 나와있는 return 문은 따로 정해진 규칙은 아닙니다.
그저 함수 내에 지정한 decorated 함수 자체를 리턴하는 방식입니다.
저희가 강좌에서 decorator ,
그러니까 적용하고자 하는 메서드 혹은 함수 선언 위에 @decorator 와 같은 형식으로 사용했지만,
결국 저희가 작성한 데코레이터는 그냥 함수입니다.
엄밀하게 말하면 하나의 함수를 받아서,
해당 함수를 감싼 새로운 함수를 되돌려 주는 함수가
Decorator 라고 생각하시면 됩니다.
실제로 함수이기 때문에 꼭 @ 와 같은 특수 구문을 사용하지 않고도 함수처럼 사용할 수도 있습니다.
그럼 왜 그냥 함수인데 이런 특이한 방식으로 사용하냐?라고 물을 수 있겠죠.
그 이유는 코드의 가독성을 높이기 위한 하나의 방법이라고 생각해주시면 좋을 것 같습니다.
강좌 들어주셔서 감사하고
좋은하루 보내시길 진심으로 바라겠습니다!
감사합니다-
강의에 나왔던 js 파일이 깃허브에 없습니다
1
69
1
모바일 디버깅, 반응형 레이아웃 4분48초 질문
0
48
1
decorator 관련질문입니다.
0
52
1
PasswordChangeView
0
96
2
로그아웃뷰 작동 관련 (2025년 3월)
1
130
1
실행에러질문
0
149
1
@login_required 데코레이터 사용시 리다이렉트는 어디서 참조하여 설정을 하는걸까요?
0
112
1
CacheBackend 관련 에러
0
173
1
21강 CreateView를 통한 회원가입 구현 질문
0
323
1
53강 disallowedhost
0
338
2
502 Bad Gateway
0
471
0
mariadb 접근권한 오류
0
536
1
logout 후 빈 화면으로 이동합니다 ㅠㅠ
0
453
2
로그아웃 후 빈 화면으로 이동
0
325
1
서버 운영 관련 질문 드립니다.(Unable to retirve...)
0
231
1
static/base.css파일을 인식을 못합니다
0
375
1
안녕하세요 19강 디버깅 설정 질문있습니다.
0
289
1
프로필 update편 질문있습니다.
0
375
1
수업질문
0
390
1
COOP error
0
525
1
61강 Dockerfile error
0
594
1
static안에 base.css 에서 정의한 클래스가 적용되지 않습니다.
0
488
1
static 파일 중 jpg 파일만 로드 불가
0
415
1
58강 static 파일 적용 안됨
0
543
1





