0
내가 장고를 사용하여 두 테이블 사이의 집계 작업을 할 노력하고있어에 집계 작업을 추가, 내 모델은 다음과 같습니다장고는 쿼리 결과
가class Cusinetype(models.Model):
hometype_en = models.TextField()
active = models.BooleanField()
hometype_es = models.TextField(blank=True, null=True)
class Meta:
managed = False
db_table = 'cusinetype'
class Foodpreferences(models.Model):
id_client = models.ForeignKey(Client, models.DO_NOTHING, db_column='id_client')
id_cusinetype = models.ForeignKey(Cusinetype, models.DO_NOTHING, db_column='id_cusinetype')
created_at = models.DateTimeField()
class Meta:
managed = False
db_table = 'foodpreferences'
내가 구축을 위해 노력하고있어 쿼리는 다음과 같습니다
SELECT
ct.id,
ct.hometype_en,
ct.hometype_es
,
((SELECT COUNT(*)
FROM foodpreferences fp
WHERE fp.id_cusinetype = ct.id AND fp.id_client = 3 ) > 0) selected
FROM
Cusinetype ct
하나의 쿼리에 해당 테이블의 정보를 저장하려고 모델을 생성하려고하는데 아무 것도 작동하지 않습니다. 누군가 어떻게하는지에 대해 알고 있습니까? 이 솔루션의
결과는 정확하지만, 쿼리는 SQL의 예에서 예상보다 훨씬 느린 쿼리를 사용합니다. 모든 클라이언트의 Foodpreferences를 읽었습니다. [Exists() 하위 쿼리] (https://docs.djangoproject.com/en/1.11/ref/models/expressions/#exists-subqueries)를 사용하는 것이 좋습니다. 예제는 매우 유사하여 더 많은 주석이 필요하지 않습니다. 더 나은 해결책을 제시하고 받아들이면 괜찮을 것입니다. – hynekcer