• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

데코레이터 관련 질문...

21.08.31 18:45 작성 조회수 127

0

1.

@login_required 

=> 로그인시 사용하는 것은 알겠는데,  적용 후

return는 설정한 대로 accountapp/hello_world.html로

오게 되나요?

2.

@method_decorator

정확한 용도를 모르겠어요 ㅜㅜ

@method_decorator의 역할을 알아야

@method_decorator(has_ownership, 'get')의 뜻도 

좀 와닿을 거 같은데.. 이 코드는

has_ownership 안의 2리스트인 

account_ownership_required와 login_required를

담고 그것을 사용하려고 하는 거 같은데...

좀 더 설명 부탁드려도 될까요...? 

답변 1

답변을 작성해보세요.

0

안녕하세요.
질문 확인했습니다.

1. 로그인 이후 되돌아 오는 것이 맞습니다.
이전 login 과정을 만들때 말씀드린 것 처럼, next 라는 값이 주소창으로 넘어가게 되고,
해당 값을 기반으로 hello_world 페이지로 되돌아오게 될거에요.

물론 설정값을 다르게 함으로서 해당 기능을 다르게 할 수도 있습니다.


2. method_decorator 의 정확한 정의는 공식 문서와 함께 답변드리겠습니다.

https://docs.djangoproject.com/en/3.2/ref/utils/#django.utils.decorators.method_decorator

위의 문서를 보시면 알겠지만,
파이썬에서 보통 decorator 는 함수에 적용됩니다. 

그런데, 지금 저희가 로직을 짜는 내용은 대부분 Class Based View 에 기반을 두고 있죠.
그렇기 때문에 저희는 function이 아닌, class 내부의 메서드에 데코레이터를 적용하고 싶은겁니다.

이렇게 함수에 적용하는 decorator 를 메서드에도 적용하기 위해서
데코레이터를 변환시켜주는 작업을 해주는 데코레이터method_decorator 라고 생각하시면 되겠습니다.

답변이 도움이 되셨으면 좋겠네요.
좋은하루 보내시구요!

감사합니다-