본문 바로가기
파이썬/파이썬기본문법

파이썬 Django Admin - 멤버 필드 표시

by flycoding 2024. 2. 27.
반응형

파이썬 Django Admin - 목록 표시를 더 읽기 쉬운 상태로 만들기

Model을 목록으로 표시하면 Django는 각 레코드를 레코드 개체의 문자열 표현으로 표시하며, 이 경우에는 "Member object(1)", "Member object(2)" 등이다.

파이썬 Django Admin - 멤버 조회 표시 예제

 

이를 보다 독자 친화적인 형식으로 변경하려면 다음과 같은 두 가지 옵션이 있다:

  • 멤버 모델의 문자열 표현 함수 __str__() 변경
  • 멤버 모델의 list_details 속성 설정

 

파이썬 Django Admin - 멤버표시 문자열 표현 변경

문자열 표현을 변경하려면 models.py 의 멤버 모델의 __str__() 함수를 다음과 같이 정의해야 한다:

my_tennis_club/members/models.py:

from django.db import models

class Member(models.Model):
  firstname = models.CharField(max_length=255)
  lastname = models.CharField(max_length=255)
  phone = models.IntegerField(null=True)
  joined_date = models.DateField(null=True)

  def __str__(self):
    return f"{self.firstname} {self.lastname}"

 

다음과 같은 결과를 얻을 수 있다:

파이썬 Django Admin - 멤버 조회 표시 예제

 

우리만의 __str__() 함수를 정의하는 것은 Django 함수가 아니라, 파이썬에서 객체의 문자열 표현을 변경하는 방법이다. 

 

파이썬 Django Admin - list_display 설정

필드를 admin.py 파일의 list_display 속성에 지정하여 표시하도록 제어할 수 있다.
먼저 MemberAdmin() 클래스를 만들고 다음과 같이 list_display tuple을 지정한다:

my_tennis_club/members/admin.py:

from django.contrib import admin
from .models import Member

# Register your models here.

class MemberAdmin(admin.ModelAdmin):
  list_display = ("firstname", "lastname", "joined_date",)
  
admin.site.register(Member, MemberAdmin)

 

memberAdmin을 admin.site.register(Member, MemberAdmin)에서 인수로 추가해야 한다.
이제 브라우저로 돌아가서 다음과 같은 결과를 얻을 수 있다:

파이썬 Django Admin admin.site.register() 활용 예제

 

이번 글에서는 파이썬 Django 모듈에서 Admin에 멤버를 추가하고 화면에 표현하는 방법을 살펴보았다.

화면에 표현하기 위해 list_display 속성을 활용하였고, __str__() 메소드를 활용하는 것에 대해서 실습하였다.
꼭 손으로 눈으로 머리로 익히며 실습하기를 바란다.

모두 화이팅입니다.!!!

 

출처 : 이 글의 출처는 w3schools사이트를 참고하였으며 필자가 추가하여 정리한 글입니다.

반응형

댓글