Django получает данные из связанной модели, которая имеет FK
как я могу сделать этот набор запросов:
SELECT
p.*,
o.name,
o.link
FROM property p
INNER JOIN listing l on l.property_id = p.id
INNER JOIN ota o on o.id = l.ota_id
модели
class Property(Model):
code = CharField()
...
class Listing(Model):
ota = ForeignKey(Ota)
property = ForeignKey(Property)
class Ota(Model):
name = Charfield()
link = Charfield()
с Property.objects.all()
я вижу в возвращаемом объекте, что есть listing_set
скажем:
queryset = Property.objects.all()
queryset[0].listing_set.all()
но он приносит всю модель, а не связанную с property_id;
также пробовал получить данные Ota в сериализаторе с помощью SerializerMethodField
и выполнить новый запрос для получения этой информации, но производительность значительно снизилась.
Думаю, вам следует использовать родственное_имя
class Property(Model):
code = CharField()
...
class Listing(Model):
ota = ForeignKey(Ota)
property = ForeignKey(Property,related_name='listinings')
class Ota(Model):
name = Charfield()
link = Charfield()
и
pp=Property.objects.first()
pp.listinings.all()