【发布时间】:2013-09-26 23:02:19
【问题描述】:
我开始调查为什么我的 Django Model.objects.filter(condition = variable).order_by(textcolumn) 查询不能以正确的顺序生成对象。发现是数据库(Postgresql)的问题。
在我之前的问题 (Postgresql sorting language specific characters (collation)) 中,我发现(在 zero323 的大力帮助下,我可以真正让它工作)我可以像这样为每个数据库查询指定排序规则:
SELECT nimi COLLATE "et_EE" FROM test ORDER BY nimi ASC;
但据我所知,order_by 只接受字段名称作为参数。
我想知道,是否可以通过某种方式扩展该功能以包含排序规则参数?是否有可能使用 mixins 或诸如此类的东西以某种方式破解它?还是功能请求是目前唯一的方法?
我希望它能像这样工作:
Model.objects.filter(condition = variable).order_by(*fieldnames, collation = 'et_EE')
编辑1: 显然我不是唯一一个要求这个的人: https://groups.google.com/forum/#!msg/django-developers/0iESVnawNAY/JefMfAm7nQMJ
艾伦
【问题讨论】:
-
如需就如何改进 Django 提出建议,请提交new feature request 和/或在django-developers 上发帖。现在你可能不得不使用raw SQL query。
-
嗯,是的,谢谢。我想/将要求该功能。我只想先知道,是否可以使用现有工具实现它。毫无疑问,Raw Query 就是其中之一。
标签: django postgresql django-queryset