2009-11-09 65 views

回答

43

docs

Django管理應用定義了許多定製窗口小部件用於日曆,過濾的選擇,等等。這些小部件定義了媒體需求,Django Admin使用自定義小部件來代替Django默認值。管理員模板將只包含在任何給定頁面上呈現小部件所需的媒體文件。

如果您喜歡Django Admin應用程序使用的小部件,請隨時在自己的應用程序中使用它們!它們都存儲在django.contrib.admin.widgets中。

在這種情況下,您需要FilteredSelectMultiple小部件。要使用它,應用小部件表單域,像這樣:

my_field = forms.ModelMultipleChoiceField(queryset=MyModel.objects.all(), widget=FilteredSelectMultiple("verbose name", is_stacked=False)) 

確保包括在模板形式media,因爲它需要包括一些JS文件。

+0

Hrm ...不想因某種原因而工作。所有JS都在那裏,但由於某種原因,它不會轉換選擇框。 http://7src.com/~mnb2/a3/access – mpen 2009-11-09 01:12:57

+0

你可以在http://dpaste.com上粘貼一些代碼嗎? – Bartek 2009-11-09 01:15:51

+0

這是一個瘋狂的猜測,但嘗試設置你的第二個參數(對於'is_stacked'變量)爲False。看看代碼,看起來這可能會影響兩個盒子的顯示。不幸的是,我現在不能自己測試,所以我只是看代碼嘿嘿:) – Bartek 2009-11-09 01:29:14