2013-05-09 108 views
1

我使用的是Django Non Rel App Engine,這是一個問題,由Django Admin中的多列排序,因爲我需要很多索引。 我想在Django 1.3中重新創建行爲,在這個行爲中,當你點擊它時只能按列排序。在Django Admin中禁用多種排序管理員=> 1.4

我嘗試了谷歌搜索和一切,但我無法找到如何。

回答

0

您正在討論恢復此更改:https://code.djangoproject.com/ticket/11868。我不明白你的意思是「我需要很多索引」,所以我不明白你爲什麼要刪除這個功能。在Django> 1.4中,當你單擊時,你仍然「只按一列排序」 - 不同的是,如果你點擊第二列,那麼當第一列的元素相同時,它將成爲二級排序。

無論如何,如果由於某種原因想要恢復此功能,您可以嘗試將django/contrib/admin目錄的old version添加到您的項目文件夾,然後它將使用舊的管理員。

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)

0

將此添加到您的「change_list.html」文件中,位於{%block object-tools% }

<script> 
$(function(){ 
    $('a[href^="?o="]').each(function(){this.href=this.href.replace(/\..*/,'')}); 
} 
</script> 

如果你沒有加載jQuery,你需要包含它。我建議包括在「base_site.html」