我有一個list_filter
與部門負荷。該列表位於頁面的右側,時間太長。django admin list_filter太長
我可以使用輸入選擇字段嗎?因爲我不能選擇多個扇區?
我以前看過這個截圖,但是我找不到辦法做到這一點。
編輯:
我有一個自定義的FILTERSPEC不是list_filter
我有一個list_filter
與部門負荷。該列表位於頁面的右側,時間太長。django admin list_filter太長
我可以使用輸入選擇字段嗎?因爲我不能選擇多個扇區?
我以前看過這個截圖,但是我找不到辦法做到這一點。
編輯:
我有一個自定義的FILTERSPEC不是list_filter
這是我如何解決它(jQuery的):
$('#changelist-filter ul').each(function(){
var maxlength = 10;
if ($(this).children().length > maxlength)
{
var list=$(this),
select=$(document.createElement('select')).insertBefore($(this).hide());
$('>li a', this).each(function(){
console.log($(this).parent().attr('class'));
var target=$(this).attr('target'),
option=$(document.createElement('option'))
.appendTo(select)
.val(this.href)
.attr('selected', $(this).parent().attr('class'))
.html($(this).html())
.click(function(){
if (target==='_blank'){
window.open($(this).val());
}
else{
window.location.href=$(this).val();
}
});
});
list.remove();
}
});
您可以編寫自己的自定義FILTERSPEC(自定義管理列表過濾器)。
此功能不是Django代碼的一部分;它計劃在版本1.2。您需要將此補丁應用於Django代碼:http://code.djangoproject.com/ticket/5833。
關於如何做到這一點,在stackoverflow上有很多例子,例如:https://stackoverflow.com/a/1294952/342473。
長長的名單,你說是來自默認模板 '管理/ filter.html',在Django /的contrib /管理/模板/管理/ filter.html,內置ListFilters的。
有幾種方式來定製它:
在全球範圍內覆蓋 '管理/ filter.html'。如果選項的數量達到某個限制,則呈現選擇標記而不是ul標記。這會影響管理中的所有列表過濾器。選擇標記應該有onchange事件處理程序像
<選擇...的onchange = 「location.href = this.options [this.selectedIndex] .value的」 在你的具體情況ListFilter>
設置模板屬性,到自定義過濾器模板的名稱。模板的內容像#1。 Django 1.4+是必需的。
選項NR 3做到了! – nelsonvarela 2012-03-23 10:05:34
@NelsonVarela很高興幫助=)我回顧了答案,發現#2只適用於Django 1.4+,FYI。 – okm 2012-03-23 10:11:54
我的意思輸入我的自定義過濾器的所有項目中選擇一個長長的清單,而不是 – nelsonvarela 2012-03-22 13:19:12