These are my 2 Django models:
class Brand(models.Model):
brand_no = models.CharField(max_length=100, unique = True)
class Meta:
db_table = 'brand'
class BrandWhereUsed(models.Model): # Brand is a component of parent brand
brand = models.ForeignKey(Brand, related_name="where_used", on_delete=models.CASCADE)
parent_brand = models.ForeignKey(Brand, on_delete=models.PROTECT)
class Meta:
constraints = [
models.UniqueConstraint(fields=['brand', 'parent_brand '], name='brand_parent')
]
db_table = 'brand_where_used'
And I would like to do convert this SQL query to Django ORM, not raw query:
SELECT t1.id, t1.brand_no
, GROUP_CONCAT(t2.parent_brand_id) AS where_used
, GROUP_CONCAT(t3.item_no) AS where_used_brand_no
FROM brand AS t1
LEFT OUTER JOIN brand_where_used AS t2 ON (t2.item_id = t1.id)
LEFT OUTER JOIN brand AS t3 ON (t3.id = t2.parent_brand_id)
GROUP BY t1.id
I tried this thread :GROUP_CONCAT equivalent in Django . But seems like it generated incorrected result query.
Could you please help me on this?