我在App Engine上使用Django Non Rel,这是Django Admin中多列排序的一个问题,因为我需要很多索引。 我想在Django 1.3中重新创建行为,当您单击它时,您只能按列进行排序。
我尝试使用谷歌搜索和一切,但我找不到。
答案 0 :(得分:1)
没有“正确”的方法(在1.4中,不确定以后的版本)
然而,事实证明在代码中禁用非常简单。
修改result_headers
django/contrib/admin/templatetags/admin_list.py
功能
在第149行,插入以下行(就在yield
语句之前):
o_list_primary = [make_qs_param(new_order_type, i)]
o_list_toggle = [make_qs_param(new_order_type, i)]
为什么要禁用多重排序功能?
当使用django-nonrel时(例如在谷歌应用引擎上),每个独特的排序顺序组合都需要自己的索引。对于包含5个可排序列的列表,这需要的数量超过每个实体允许的最大索引数(当前为200)
答案 1 :(得分:0)
您正在谈论恢复此更改:https://code.djangoproject.com/ticket/11868。我不明白你的意思是“我需要很多索引”,所以我不明白你为什么要删除这个功能。在Django> 1.4中,您仍然“在单击时仅按一列排序” - 不同之处在于您是否单击第二列,这将成为第一列元素相同时的二级排序。
无论如何,如果由于某种原因你想恢复这个功能,你可以尝试将old version django / contrib / admin目录添加到你的项目文件夹中,然后它将使用旧的管理员。
答案 2 :(得分:0)
将其添加到{%block object-tools%}
内的“change_list.html”文件中<script>
$(function(){
$('a[href^="?o="]').each(function(){this.href=this.href.replace(/\..*/,'')});
}
</script>
如果你没有加载jQuery,你需要包含它。我建议包含在“base_site.html”
中