我的项目中有3个这样的模型:
kubectl apply -f dir
因此,在我的数据库中,有以下三个表:
class Model_A(Models.Model):
field_a_1 = models.IntegerField()
...other fields...
class Model_C(models.Model):
field_c_1 = models.IntegerField()
field_c_2 = models.IntegerField()
...other fields...
class Model_B(Model_C):
table_a_fk_id = ChainedForeignKey(Model_A, .... )
...other fields...
并且我需要一个查询来检索像这样的输出数据:
Table_A(id, name, field_a_1, ...other fields....)
Table_B(id, table_a_fk_id, table_c_fk_id, .....other fields...)
Table_C(id, field_c_1, field_c_2, ...other fields....)
我已经通过原始sql查询解决了该问题,但是我不知道在Django ORM中该怎么做。 这是我的SQL代码:
Table_A_id Table_A_name count
------------------------------------------------
12 Table_A_name_12 138
1 Table_A_name_1 133
13 Table_A_name_13 55
15 Table_A_name_15 38
9 Table_A_name_9 34
7 Table_A_name_7 0
19 Table_A_name_19 0
我想在Django ORM中翻译上述sql,以避免执行原始sql查询。
答案 0 :(得分:0)
实际上,可以争论的是,在这种情况下,您会被要求让Django执行“原始查询”是合理的,当然您可以这样做。
我要说的是-明确。您正在做的事情显然很复杂,但 用SQL语法简洁地描述了,这对所有程序员都是众所周知的。 (而且,如果需要的话……众所周知,它不可避免地会……很容易更改。)
因此,我认为我有理由在这里使用直接SQL是有道理的。如果我是您的团队负责人,那可能就是我的建议。