Мне нужен запрос для получения имени и идентификатора 4 классов модели (P, B, M, C, Pt) с помощью concat.
Класс Pt имеет ForeignKey для родительского класса с идентификатором
Ожидаемый результат должен быть таким: Pt.name, Product.num, concat (B.name, M.name, V.name)
Я пробую несколько подходов, и, тем не менее, именно этот
Модели:
class B(models.Model):
b_id = models.AutoField(primary_key=True)
name = models.CharField(max_length=100)
class M(models.Model):
m_id = models.AutoField(primary_key=True)
name = models.CharField(max_length=100)
class V(models.Model):
v_id = models.AutoField(primary_key=True)
name = models.CharField(max_length=100)
class Pt(models.Model):
pt_id = models.AutoField(primary_key=True)
name = models.CharField(max_length=100)
class Product(models.Model):
p_id = models.AutoField(primary_key=True)
p_ref_fk = models.DecimalField(max_digits=5, decimal_places=2, null=True)
pt_fk = models.ForeignKey(Pt, on_delete=models.CASCADE)
b_fk = models.ForeignKey(B, on_delete=models.CASCADE)
m_fk = models.ForeignKey(M, on_delete=models.CASCADE)
v_fk = models.ForeignKey(V, on_delete=models.CASCADE)
Запрос:
# Get all the P related
p = Product.objects.all().filter(pt_fk__pt_id=1116).filter(b_fk__b_id=3).filter(m_fk__m_id=53).filter(v_fk__v_id=352)
# check the query
print(p.query)
# get the results
print(p)