私はlist_filter
のセクタがあります。このリストはページの右側にあり、長すぎます。django admin list_filter too too
複数のセクタを選択できないため、代わりに入力選択フィールドを使用できますか?
私はこの前に、スクリーンショットを見ましたが、私はこれを行う方法を見つけることができません。
編集:
私はカスタムFilterSpecにはない独自のカスタムFilterSpecに(カスタム管理者リストフィルタ)を書くことができますlist_filter
私はlist_filter
のセクタがあります。このリストはページの右側にあり、長すぎます。django admin list_filter too too
複数のセクタを選択できないため、代わりに入力選択フィールドを使用できますか?
私はこの前に、スクリーンショットを見ましたが、私はこれを行う方法を見つけることができません。
編集:
私はカスタムFilterSpecにはない独自のカスタム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();
}
});
を持っています。
この機能はまだDjangoコードの一部ではありません。それはバージョン1.2のために計画されています。このパッチは、Djangoコードhttp://code.djangoproject.com/ticket/5833に適用する必要があります。
これには、https://stackoverflow.com/a/1294952/342473など、多くの例があります。
あなたが言った長いリストが組み込みListFiltersの、ジャンゴに/ contrib /管理/テンプレート/管理/ filter.htmlで、デフォルトのテンプレートにadmin/filter.html "から来ています。
グローバルオーバーライドにadmin/filter.html ':
は、それをカスタマイズする方法はいくつかあります。選択肢の数が一定の制限を超えた場合は、ulタグの代わりにselectタグをレンダリングします。これはadminのすべてのリストフィルタに影響します。 selectタグ>は
<のようなのonchangeイベントハンドラは...のonchange = "LOCATION.HREF = this.options [this.selectedIndex] .VALUE" を選択し、あなたの特定のListFilterインスタンスで
設定テンプレートの属性を持っている必要がありますカスタマイズされたフィルタテンプレートの名前に変更します。テンプレートの内容は#1のようです。これにはDjango 1.4+が必要です。
オプションNR 3それをやりました! – nelsonvarela
@NelsonVarela喜んで助ける=)私は答えを見直し、#2はDjango 1.4+、FYIのみで動作することを発見しました。 – okm
私は入力を意味代わりに、長いリストのすべての項目を選択する私のカスタムフィルタ – nelsonvarela