【发布时间】:2014-12-14 13:18:46
【问题描述】:
我有一张桌子table_object_price。字段:field_sale_currency_value 是货币名称,field_sale_whole_value 是价格名称。
class Object(Node):
id = models.OneToOneField('Nod', parent_link=True, db_column='id')
name = models.TextField(blank=True, null=True)
field_sale_currency_value = models.TextField(blank=True, null=True)
field_sale_whole_value = MIntegerField(blank=True, null=True)
此 SQL 代码进行排序:
SELECT *,
CASE field_sale_currency_value
when 'RUR' then field_sale_whole_value/40
when 'USD' then field_sale_whole_value
when 'EUR' then field_sale_whole_value/0.7423
field_sale_currency_value FROM welhome.welhome_content_type_object ORDER BY cost_usd ;
但我需要额外使用 django,因为我的函数获取了查询集:
def sort_queryset(queryset):
queryset = queryset.extra(select={'cost_usd':'(case field_sale_currency_value when "RUR" then field_sale_whole_value/40 when "USD" then field_sale_whole_value when "EUR" then field_sale_whole_value/0.7423 end)'}, order_by=["cost_usd"])
return queryset
而且它不起作用。
Error Cannot resolve keyword 'cost_usd' into field
【问题讨论】: