2013-09-26 46 views
0

因此,在我的Dishes表(成分,框)中的許多字段的管理界面中,當我使用下面的代碼時,表單元素是一個可搜索的框,其中包含相關的整個查詢集模型,並讓我將選擇移動到右側選定對象的姐妹箱。我這樣做,在admin.py以Django的形式顯示可搜索的ManyToMany字段

class Dishes(admin.ModelAdmin): 
    ... 
    filter_horizontal = ('ingredients', 'boxes',) 

我試圖複製在我的前端形式的用戶看到相同的行爲下面的代碼,這是我forms.py代碼

class RecipesForm(ModelForm): 
class Meta: 
    model = models.Dishes 

但我得到的只是一個簡單的多選框。如何複製我在管理員中做過的操作,其中左側有一個可搜索框,右側是我從左側選擇的對象?

回答

1

您只需設置兩個領域的管理部件:

from django.contrib.admin.widgets import FilteredSelectMultiple 

class RecipesForm(ModelForm): 
    class Meta: 
     model = models.Dishes 
     widgets = { 
      'ingredients': FilteredSelectMultiple('Ingredients', False), 
      'boxes': FilteredSelectMultiple('Boxes', False) 
     } 

還需要添加管理員靜態文件(CSS,JS)用於微適當地工作,請參考以下鏈接瞭解詳細信息:

http://jayapal-d.blogspot.com/2009/08/reuse-django-admin-filteredselectmultip.html

+0

我得到以下錯誤指向的代碼行上面「成分」,異常類型開始:\t類型錯誤 異常值:\t __init __()至少需要3個參數(給出1個參數) –

相關問題