型号:
class Mark(models.Model):
name = models.CharField(max_length=200, verbose_name="Марка", unique=True, null=True)
#...
class Model(models.Model):
mark = models.ForeignKey(Mark, on_delete=models.CASCADE, verbose_name="Марка")
name = models.CharField(max_length=200, verbose_name="Модель", unique=True, null=True)
#...
class Car(models.Model):
vin = models.CharField(max_length=100, null=True)
#...
class Image(models.Model):
car = models.ForeignKey(Car, related_name='images', on_delete=models.CASCADE)
image = models.ImageField(upload_to=get_upload_path, verbose_name="Фото")
#...
如何在没有RAW的情况下在Django ORM中进行以下查询:
query = "SELECT c.*, m.name mark_name, JSON_ARRAYAGG(img.image) image FROM incarcatalog_car c \
LEFT JOIN incarcatalog_mark m ON m.id=c.mark_id \
LEFT JOIN incarcatalog_image img ON img.car_id=c.id \
WHERE c.id>%s \
GROUP BY c.id;"
queryset = Car.objects.raw(query, [id])
我的问题是. 我对Mark,Model表进行了左连接,但我不知道如何将CAR表与Image表连接起来
queryset = Car.objects.select_related("mark", "model").all()
但我不知道如何创建与Image表的关系.