OneToOneField() 및 ForeignKey()는 모델 간의 관계를 설정하는 데 사용되는 두 개의 Django 모델 필드입니다. 두 필드 모두 일대일 관계를 생성할 수 있지만 동작에는 미묘한 차이가 있습니다.
다음을 고려하세요. 다음 모델:
# OneToOneField example class Car(models.Model): name = models.CharField(max_length=25) engine = models.OneToOneField(Engine) # ForeignKey with unique=True example class Car2(models.Model): name = models.CharField(max_length=25) engine = models.ForeignKey(Engine2, unique=True)
Python에서 shell:
# OneToOneField car = Car.objects.get(name='Audi') engine = Engine.objects.get(name='Diesel') print(engine.car) # Outputs <Car: Audi> # ForeignKey with unique=True car2 = Car2.objects.get(name='Mazda') engine2 = Engine2.objects.get(name='Wankel') print(engine2.car2_set.all()) # Outputs [<Car2: Mazda>]
OneToOneField의 "역방향" 관계(engine.car)는 단일 객체(Car 인스턴스)를 반환하는 반면, Unique=True의 "역방향" 관계(engine2.car2_set.all( )) QuerySet(해당 Engine2 인스턴스와 관련된 모든 Car2 인스턴스 목록)을 반환합니다.
위 내용은 Django에서 `unique=True`를 사용하는 `OneToOneField()`와 `ForeignKey()`의 주요 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!