我使用的是Django Non Rel App Engine,這是一個問題,由Django Admin中的多列排序,因爲我需要很多索引。 我想在Django 1.3中重新創建行爲,在這個行爲中,當你點擊它時只能按列排序。在Django Admin中禁用多種排序管理員=> 1.4
我嘗試了谷歌搜索和一切,但我無法找到如何。
我使用的是Django Non Rel App Engine,這是一個問題,由Django Admin中的多列排序,因爲我需要很多索引。 我想在Django 1.3中重新創建行爲,在這個行爲中,當你點擊它時只能按列排序。在Django Admin中禁用多種排序管理員=> 1.4
我嘗試了谷歌搜索和一切,但我無法找到如何。
您正在討論恢復此更改:https://code.djangoproject.com/ticket/11868。我不明白你的意思是「我需要很多索引」,所以我不明白你爲什麼要刪除這個功能。在Django> 1.4中,當你單擊時,你仍然「只按一列排序」 - 不同的是,如果你點擊第二列,那麼當第一列的元素相同時,它將成爲二級排序。
無論如何,如果由於某種原因想要恢復此功能,您可以嘗試將django/contrib/admin目錄的old version添加到您的項目文件夾,然後它將使用舊的管理員。
有沒有「正確」的方式做到這一點(在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)
將此添加到您的「change_list.html」文件中,位於{%block object-tools% }
<script>
$(function(){
$('a[href^="?o="]').each(function(){this.href=this.href.replace(/\..*/,'')});
}
</script>
如果你沒有加載jQuery,你需要包含它。我建議包括在「base_site.html」