ORM

OneDayDev·2023년 12월 28일
0

Django

목록 보기
9/14

역참조

  1. ForeignKey 역참조:

    # models.py
    from django.db import models
    
    class Author(models.Model):
        name = models.CharField(max_length=100)
    
    class Book(models.Model):
        title = models.CharField(max_length=200)
        author = models.ForeignKey(Author, on_delete=models.CASCADE)

    이 경우, Author 모델에서 book_set을 사용하여 해당 작가와 연관된 모든 책을 가져올 수 있습니다.

    # views.py or wherever you want to use it
    author = Author.objects.get(pk=1)
    books = author.book_set.all()
  2. OneToOneField 역참조:

    # models.py
    from django.db import models
    
    class Person(models.Model):
        name = models.CharField(max_length=100)
    
    class Passport(models.Model):
        passport_number = models.CharField(max_length=20)
        person = models.OneToOneField(Person, on_delete=models.CASCADE)

    Person 모델에서 passport를 사용하여 해당 사람의 패스포트를 가져올 수 있습니다.

  3. ManyToManyField 역참조:

    # models.py
    from django.db import models
    
    class Movie(models.Model):
        title = models.CharField(max_length=100)
    
    class Actor(models.Model):
        name = models.CharField(max_length=100)
        movies = models.ManyToManyField(Movie)

    Movie 모델에서 actor_set을 사용하여 해당 영화와 연관된 모든 배우를 가져올 수 있습니다.

    # views.py or wherever you want to use it
    movie = Movie.objects.get(pk=1)
    actors = movie.actor_set.all()

이렇게 역참조를 사용하여 모델 간의 관계를 효과적으로 활용할 수 있습니다.

더 알아보기

profile
안녕하세요.

0개의 댓글