[Django]正、逆参照を参照
1.正参照、逆参照
models.py
class Actor(models.Model):
first_name = models.CharField(max_length=45)
last_name = models.CharField(max_length=45)
date_of_birth = models.DateField()
movies = models.ManyToManyField('Movie', through='ActorMovie', related_name='Actor')
class Meta:
db_table = 'actors'
class Movie(models.Model):
title = models.CharField(max_length=45)
release_date = models.DateField()
running_time = models.IntegerField()
class Meta:
db_table = 'movies'
class ActorMovie(models.Model):
actor = models.ForeignKey('Actor', on_delete=models.CASCADE)
movie = models.ForeignKey('Movie', on_delete=models.CASCADE)
class Meta:
db_table = 'actors_movies'
1)正参照
オブジェクトに別のオブジェクトのForeign Keyがある場合、または関係が1:1の場合に参照されます.
ActorMovieテーブルは、ActorテーブルとMovieテーブルを定義します.
マクロテーブルはMovieテーブルを参照しています.
2)逆参照
オブジェクトを参照する別のオブジェクトを参照する場合.
他のオブジェクトにはForeign KeyまたはN:N関係があります.
MovieテーブルがActorテーブルを参照しようとしている場合は、逆参照と呼ばれます.(オプションで)
MovieテーブルがActorMovieテーブルを介してActorテーブルを参照している場合.
1)Movieテーブルは、ActorMovieテーブルを逆参照します.
2)ActorMovie表はActor表を参照している
このような手順で参照します.
2.逆参照の使用方法
1)set managerの使用
{参照モデル}.{参照モデルの小文字}set.all()Actor.movie_set.all()
2)related nameの使用
{参照モデル}{参照モデル(FKを持つ)のカラム}.{逆参照関係名}.all()Movie.first_name.philmo_name.all()
Reference
この問題について([Django]正、逆参照を参照), 我々は、より多くの情報をここで見つけました
https://velog.io/@kdh10806/Django-정참조-역참조
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
class Actor(models.Model):
first_name = models.CharField(max_length=45)
last_name = models.CharField(max_length=45)
date_of_birth = models.DateField()
movies = models.ManyToManyField('Movie', through='ActorMovie', related_name='Actor')
class Meta:
db_table = 'actors'
class Movie(models.Model):
title = models.CharField(max_length=45)
release_date = models.DateField()
running_time = models.IntegerField()
class Meta:
db_table = 'movies'
class ActorMovie(models.Model):
actor = models.ForeignKey('Actor', on_delete=models.CASCADE)
movie = models.ForeignKey('Movie', on_delete=models.CASCADE)
class Meta:
db_table = 'actors_movies'
1)set managerの使用
{参照モデル}.{参照モデルの小文字}set.all()
Actor.movie_set.all()
2)related nameの使用
{参照モデル}{参照モデル(FKを持つ)のカラム}.{逆参照関係名}.all()
Movie.first_name.philmo_name.all()
Reference
この問題について([Django]正、逆参照を参照), 我々は、より多くの情報をここで見つけました https://velog.io/@kdh10806/Django-정참조-역참조テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol