• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

모델 클래스를 admin에 등록하는 방법에 대해 문의 드립니다.

21.10.26 23:54 작성 조회수 91

1

안녕하세요 강의 잘보고 있습니다.

모델 클래스를 admin에 등록하는 방법 중

3번째 방법을 애용하신다고 하셨는데,

1. 3번째 방법이 제일 좋은 선택인가요?

2. 어떠한 점에서 2번째 방법 보다 좋은지 궁금합니다.

3. 그게 아니라면 2,3번째 방법이 각각 어떠한 상황에서 사용하면 좋은지 문의 드립니다.

감사합니다.

답변 2

·

답변을 작성해보세요.

2

파이썬에서는 장식자(Decorators) 문법을 활용하면 코드의 가독성이 좋아집니다. 그러니 3번 방법을 추천드린 것이구요. 세번째 방법은 2번 방법에 대한 숏컷으로 보실 수 있습니다. 많은 분들이 3번 방법의 존재를 잘 모르시더라구요.

아래의 register 장식자 코드를 보시면, 내부적으로 두번째 방법의 코드를 호출하는 것을 확인하실 수 있습니다.
https://github.com/django/django/blob/3.2.8/django/contrib/admin/decorators.py#L74

기능적으로는 2번 방법이나 3번 방법이나 동일합니다. 어느 상황에서든 두 가지 방법 모두 사용하실 수 있겠구요.

특정 모델을 admin에 중복등록이 불가합니다. 새로운 ModelAdmin을 등록코자 할 때에는 기존의 등록을 해지(unregister)후에 등록(register)하셔야 되는 데요. unregister는 장식자로 제공될 수 없기에 장식자가 없습니다. unregister는 2번 방법과 유사하게 사용하셔야 합니다.

위 소스 링크에 보시면 admin에서 장식자를 register외에도 action와 display를 제공해주고 있습니다. 이는 장고 3.2에서 추가된 장식자인데요. 소스에 보시면 주석으로 활용 예가 있으니, 활용을 추천드립니다. :-)

0

dongree님의 프로필

dongree

질문자

2021.10.27

친절한 설명 감사합니다!