django orm에서 SQL 쿼리와 같은 구현 방법을 한 번에 모든 테이블 레코드를 검색하려고합니다.
SQL 쿼리 예 :
select *
from Company_info
inner join Bank_info on Bank_info.manufacturer = Company_info.manufacturer
inner join Company_info on Company_info.manufacturer = Company_info.manufacturer
inner join Transport_info on Transport_info.manufacturer = Company_info.manufacturer
암호:
class Manufacturer(models.Model):
name = models.CharField(max_length=42)
class Bank_info(models.Model):
account = models.CharField(max_length=42)
manufacturer = models.ForeignKey(Manufacturer, on_delete= models.CASCADE)
class Company_info(models.Model):
name= models.CharField(max_length=42)
manufacturer = models.ForeignKey(Manufacturer, on_delete= models.CASCADE)
class Transport_info(models.Model):
name= models.CharField(max_length=42)
manufacturer = models.ForeignKey(Manufacturer, on_delete= models.CASCADE)
주석에서 언급했듯이이를 위해 prefetch_related 를 사용할 수 있습니다 .
Manufacturer.objects.all().prefetch_related('related_name2', 'related_name3', 'related_name4')
실제로 이것은 SQL INNER JOIN을 수행하지 않지만 Python 수준에서 프리 페치 된 객체를 결합합니다. 이것은 관련 객체 필드를 사용할 때 DB에 대한 적중을 감소시킵니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다