본문 바로가기
Programming/Django

[Python Django] The Practical Guide - Admin, Relationship

by Mandy's 2025. 7. 23.

The Django Admin Feature

Easy & Powerful Data Administration

book_outlet//admin.py

admin 페이지

admin.site.register(Book)

admin.py

 

Data Relationship

데이터는 종종 연결되어 있다. 

j.k 롤링은 해리포터의 많은 시리즈를 작성했다. 

다양한 종류의 데이터 연결 타입이 있다. 일대일, 일대다, 다대다..

각각의 관계를 하나씩 살펴보자

class Author(models.Model):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
 
 
author = models.ForeignKey(Author, on_delete=models.CASCADE)
 

CASCADE, PRO, SET -> 다양한 조건이 있음. ..

 

One-to-One: book - author의 관계
class Author(models.Model):
    first_name = models.CharField(max_length=100)
    last_name = models.CharField(max_length=100)
    
    def full_name(self):
        return f"{self.first_name} {self.last_name}"
     
    def __str__(self):
        return self.full_name()

 

 

One-to-many
class Address(models.Model):
    street = models.CharField(max_length=80)
    postal_code = models.CharField(max_length=5)
    city = models.CharField(max_length=50)


class Author(models.Model):
    first_name = models.CharField(max_length=100)
    last_name = models.CharField(max_length=100)
    address = models.OneToOneField(
        Address, on_delete=models.CASCADE, null=True)

 

기본 address 로 보여진다

class Address(models.Model):
    street = models.CharField(max_length=80)
    postal_code = models.CharField(max_length=5)
    city = models.CharField(max_length=50)
    
    def __str__(self):
        return f"{self.street}, {self.postal_code}, {self.city}"

 

address 가 수정되었다

한 줄 추가됨으로서 가독성이 좋아짐!

 

class Meta:
verbose_name_plural = "Address Entries"

class 안에 class Meta를 만들었다. 

에러 발생

일대일 관계로 설정되어 있어서 안됨.. 

 

Many-to-Many

많은 나라에 책을 출판했을 수도 있다. 많은 책을 .. 다대다

class Country(models.Model):
    name = models.CharField(max_length=80)
    code = models.CharField(max_length=2)

 

Book에 한 줄 추가

    published_countries = models.ManyToManyField(Country)

one-to-one 과 달리 on_delete 선택이 없음. 

다대다이기 때문에 = 이 아니라 .add로 리스트에 추가한다!

 


그나저나 udemy에 한글 버전이 없었는데, 크롬 확장 프로그램에 자동으로 번역해주는 기능이 있었다!

찾아주신 분, 만들어주신 분 감사합니다. ... 

https://chromewebstore.google.com/detail/udemy-%ED%95%9C%EA%B8%80-%EC%9E%90%EB%A7%89-google-%EB%B2%88%EC%97%AD-dee/deobfkgpcfnaelcfeiihpahnejpakgjj

 

Udemy 한글 자막 - Google 번역, DeepL 번역 - Chrome 웹 스토어

Udemy 영어 자막 번역 / 한글 자막 띄우기

chromewebstore.google.com