인프런 커뮤니티 질문&답변

최다니엘님의 프로필 이미지
최다니엘

작성한 질문수

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

장고 admin을 통한 데이터 관리

post인자는 어디서 비롯되는 것인지 알고싶습니다.

작성

·

312

0

안녕하세요 강사님

저와 비슷한 질문을 어떤분께서도 하셨고, 강사님이 x,y에 빗대어 말씀은 해주셨는데, 그 자체는 이해가 갔어도 강사님이 구현해주신 코드 안에서는 잘 이해가 안가서요 ㅠㅠ

스크린샷 2022-12-12 오후 9.36.59.png질문1. 여기서 마지막줄의

def message_length(self, post):

에 대해서 post에 들어갈 값은 구체적으로 어디에서 비롯될까요?

 

질문2. self, post라고 한 것중에 self는 class에서 상속받아 쓸때 반드시 의무적으로 써줘야하는 것으로 알고있습니다. 하지만 post의 경우에는 admin.register(Post)라고해서

근본적으로 models.py(모델단)에서 Post라는 클래스를 가져와서 사용하는 것이기 때문에 post라고 이름붙여 준 것일까요?

답변 1

1

이진석님의 프로필 이미지
이진석
지식공유자

안녕하세요.

ModelAdmin 클래스의 list_display에는 모델 필드명 뿐만 아니라,
그 ModelAdmin 클래스의 멤버함수도 지정할 수 있습니다.

list_display 리스트에 멤버함수 이름을 지정하실 경우,
ModelAdmin에서 그 멤버함수를 호출할 때, 모델 인스턴스를 첫번째 인자로 지정해서 호출합니다.

PostAdmin은 Post모델에 대한 ModelAdmin이니까
그 인자는 Post 모델의 인스턴스가 될 것이구요.
그 이름을 instance로 쓰셔도 되지만
Post 모델의 인스턴스이기에 post 이름으로 지정한 것입니다.

그리고, 파이썬 클래스에서 self 는 상속여부와는 관련이 없습니다.
파이썬 클래스에서 instance method는 self를 통해, 현재의 instance를 명시적으로 받습니다.
C++이나 Java와 같은 다른 언어에서는 암시적으로 this를 사용하는 데요. 역할은 동일합니다.

살펴보시고, 또 질문 남겨주세요.

화이팅입니다. :-)

최다니엘님의 프로필 이미지
최다니엘

작성한 질문수

질문하기