ينضم Django إلى اليسار

0

أود أن أعرف كيفية تنفيذ استعلام sql الأيسر التالي في Django. أعرف بالفعل عن Person.objects.raw ()

select person.name, phone.number, email.emailaddr, home.address
from person
left join phone
    on person.id = phone.person_id
left join email
    on person.id = email.person_id
left join home
    on person.id = home.person_id;

بافتراض النموذج التالي:

class Person(models.Model):
    name = models.CharField(max_length=30)

class Phone(models.Model):
    number = models.CharField(max_length=30)
    person = models.ForeignKey('Person')

class Email(models.Model):
    emailaddr = models.CharField(max_length=30)
    person = models.ForeignKey('Person')

class Home(models.Model):
    address = models.CharField(max_length=30)
    person = models.ForeignKey('Person')

1 إجابة

1
افضل جواب

أعتقد أن هذا يجب أن يؤدي الخدعة:

Person.objects.values_list('name', 'phone__number', 'email__emailaddr', 'home__address')
:مؤلف
فوق
قائمة طعام