• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

argument 질문

21.12.31 03:11 작성 조회수 202

0

아래 argument에 post는 무엇인가요?

    def photo_tag(self,post):
        if post.photo:
            return mark_safe(f'<img src="{post.photo.url}" style="width:75px;"/>')
        return None

 

    def message_length(self, post):
        return f"{len(post.message)}글자"

모델명은 Post인데 어디서 나온 값인지 잘 모르겠네요

파이썬 문법공부가 부족해서 잘 모르는것 같네요

답변 1

답변을 작성해보세요.

0

안녕하세요.

이는 장고의 ModelAdmin의 기능입니다. 구현한 ModelAdmin의 list_display에 지정한 이름으로서

  1. 관련 모델에 정의한 컬럼명을 쓰실 수도 있고,
  2. 관련 모델에 정의한 인자없는 인스턴스 함수명을 쓰실 수도 있고,
  3. 관련 모델에 정의한 property를 쓰실 수도 있고,
  4. 현 ModelAdmin의 인스턴스 함수명을 쓰실 수도 있습니다.

를 지정하실 수 있는 데요. 지정하시면 관련 모델의 admin 목록 페이지에서 목록을 구성할 때, 컬럼 데이터로서 사용이 되게 됩니다.

말씀하신 경우는 4번에 해당합니다. 4번의 경우 해당 인스턴스 함수 호출를  ModelAdmin에서 자동으로 호출을 해주게 되구요. 이때 관련 모델 인스턴스를 ModelAdmin에서 넘겨주게 됩니다.