我正在开发项目,我必须将PostgreSQL查询转换为Django查询。我的问题是如何使用
select id,name, address_1, address_2, city,county,postcode,
case when fuel = 't' then 'Yes'
when fuel is null then 'No' else 'No' end as fuel,
case when food = 't' then 'Yes'
when food is null then 'No' else 'No' end as food,
case when shower = 't' then 'Yes'
when shower is null then 'No' else 'No' end as shower,
case when toils = 't' then 'Yes'
when toils is null then 'No' else 'No' end as toils,spaces, cost
from park
where type_id = 3 and state_id in (1,2)
使用额外方法执行此操作的一种方法
ModelName.objects.extra(select={"link_id": "case when link_id >0 then -3 else 0 end"})
但我认为这不是最佳方式。还有其他办法吗?
由于
答案 0 :(得分:0)
由于这些值都不依赖于任何复杂的数据库逻辑,我会将逻辑移动到Python并简单地在模型上创建它们。
class MyModel(models.Model):
... id, name etc ...
_shower = models.CharField(db_column="shower")
@property
def shower(self):
return 'Yes' if self._shower else 'No'
......等等。