작성
·
148
답변 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