我开始调查为什么我的Django Model.objects.filter(condition = variable).order_by(textcolumn)查询不能按正确顺序返回对象。后来发现这是数据库(Postgresql)的问题。
在我之前的问题中(Postgresql sorting language specific characters (collation)),我找出了(在zero323的大力帮助下实际上让它工作)我可以像这样指定每个数据库查询的排序规则:
但据我所知,order_by只接受字段名作为参数。
我在想,是否有可能扩展该功能以包括collation参数?是否可以使用mixin或其他方法进行黑客攻击?或者现在唯一的方法是提出功能请求?
我希望它能像这样工作:
在我之前的问题中(Postgresql sorting language specific characters (collation)),我找出了(在zero323的大力帮助下实际上让它工作)我可以像这样指定每个数据库查询的排序规则:
SELECT nimi COLLATE "et_EE" FROM test ORDER BY nimi ASC;
但据我所知,order_by只接受字段名作为参数。
我在想,是否有可能扩展该功能以包括collation参数?是否可以使用mixin或其他方法进行黑客攻击?或者现在唯一的方法是提出功能请求?
我希望它能像这样工作:
Model.objects.filter(condition = variable).order_by(*fieldnames, collation = 'et_EE')
编辑1: 显然,我不是唯一一个提出这个要求的人: https://groups.google.com/forum/#!msg/django-developers/0iESVnawNAY/JefMfAm7nQMJ
艾伦