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()
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
를 사용하여 해당 사람의 패스포트를 가져올 수 있습니다.
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()
이렇게 역참조를 사용하여 모델 간의 관계를 효과적으로 활용할 수 있습니다.