我在 App Engine 上使用 Django Non Rel,在 Django Admin 中按多列排序的功能是个问题,因为我需要很多索引。我想重新创建 Django 1.3 中的行为,当您单击它时,您只能按列排序。
我尝试了谷歌搜索和一切,但我找不到如何。
我在 App Engine 上使用 Django Non Rel,在 Django Admin 中按多列排序的功能是个问题,因为我需要很多索引。我想重新创建 Django 1.3 中的行为,当您单击它时,您只能按列排序。
我尝试了谷歌搜索和一切,但我找不到如何。
没有“正确”的方法可以做到这一点(在 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(例如在 google app 引擎上)时,排序顺序的每个唯一组合都需要自己的索引。对于具有 5 个可排序列的列表,这需要超过每个实体允许的最大索引数(当前为 200)
将此添加到 {% block object-tools %} 内的“change_list.html”文件中
<script>
$(function(){
$('a[href^="?o="]').each(function(){this.href=this.href.replace(/\..*/,'')});
}
</script>
如果您没有加载 jQuery,则需要包含它。我建议包含在“base_site.html”中