Django自定义SQL返回QuerySet,其中每个对象都有附加属性
假设我有以下对象:Django自定义SQL返回QuerySet,其中每个对象都有附加属性,sql,django,postgresql,Sql,Django,Postgresql,假设我有以下对象: squirrel_table - name - country_of_origin - id nut_table - id - squirrel_who_owns_me[fk to squirrel] 我想检索特定国家所有松鼠的列表。返回的squirrel对象可以位于QuerySet中,但不需要位于QuerySet中。一份清单就足够了。每个松鼠将有一个额外的属性调用nut_count。这方面的SQL如下所示(请注意,我使用子查询是为了不枚举squir
squirrel_table
- name
- country_of_origin
- id
nut_table
- id
- squirrel_who_owns_me[fk to squirrel]
我想检索特定国家所有松鼠的列表。返回的squirrel对象可以位于QuerySet中,但不需要位于QuerySet中。一份清单就足够了。每个松鼠将有一个额外的属性调用nut_count。这方面的SQL如下所示(请注意,我使用子查询是为了不枚举squirrel的所有列,因为实际上会有很多列)(我使用PostgreSQL):
是否有一种方法可以执行SQL,将它生成的游标转换为squirrel对象的列表,并将螺母计数添加到每个squirrel中?您可能需要通读,其中包括一个类似的“选择其他对象并将其附加到每个对象”情况的示例。如果需要执行SQL,请使用raw()。 如果您添加一个pk“select table.id as pk,table.*…”,那么它的行为将类似于您可能使用的查询集
sql = 'select sq.id as pk, sq.* ... %s'
squirreled = squirrel_table.objects.raw(sql, ["arg1"])
sql = 'select sq.id as pk, sq.* ... %s'
squirreled = squirrel_table.objects.raw(sql, ["arg1"])