2015-10-20 50 views
1

我正在學習Django,我有一個叫Song的模型,它有多個字段singer。現在在管理部分中,我爲此字段提供了一個簡單的多選字段。如何添加Jquery插件到Django

現在我想更改起訴Select2 Plugin的多選區域。

我也做這個添加一類歌手現場:

forms.py

class SongForm(forms.ModelForm): 
    class Meta: 
     model = Song 
     fields = ['title', 'lyrics', 'singer'] 
     widgets = { 
      'singer': forms.SelectMultiple(attrs={'class': 'multipleSelectBox'}), 
     } 

現在我拿起​​縮小的JS和CSS文件形成CDN鏈接提供了關於其主頁,幷包括JS和CSS來我的頁面做這個:

admin.py

class SongAdmin(admin.ModelAdmin): 
     class Media: 
      def __init__(self): 
       pass 

      css = { 
       "all": ('css/plugins/select2.min.css',) 
      } 
      js = ('js/plugins/select2.min.js', 'js/songs.js') 

     form = SongForm 


admin.site.register(Song, SongAdmin) 

JS/songs.js

(function($){ 
    $(".multipleSelectBox").select2(); 
})(django.jQuery); 

當我加載此瀏覽器,我得到的控制檯錯誤:

選擇二:或jQuery的實例的jQuery的兼容圖書館不是 找到。確保您在 網頁上的Select2之前包含jQuery。

但是,當我檢查頁面源時,我可以看到Jquery.js在select2.min.js之前加載。

不知道我在哪裏搞砸了。請幫忙。

回答

1

我不知道這是否是最好的方法來做到這一點,但這是我所做的,以防有人需要幫助。

好像Django的修改Jquery的範圍,所以我決定用其他jQuery的文件

class SongAdmin(admin.ModelAdmin): 
    class Media: 
     def __init__(self): 
      pass 

     css = { 
      "all": ('css/plugins/select2.min.css',) 
     } 
     js = (
      'http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js', 
      'js/plugins/select2.min.js', 
      'js/songs.js' 
     )