2012-02-02 57 views
1

我這樣做,需要我用FilteredSelectMultiple一個Django項目,這是怎麼看起來像一個例子:使用jQuery版本1.6及以上,使Django的FilteredSelectMutliple無法使用

crews = ModelMultipleChoiceField(
      queryset=Crew.objects.all(), 
      widget=widgets.FilteredSelectMultiple(
      "Crews", is_stacked=False), 
      required=True 
     ) 

當然,在模板,我已經正確稱爲選擇框,SelectFilter和core.js:

<script type="text/javascript" charset="utf-8" src="/web/js/core.js" ></script> 
<script type="text/javascript" charset="utf-8" src="/web/js/SelectFilter2.js" ></script> 
<script type="text/javascript" charset="utf-8" src="/web/js/SelectBox.js" ></script> 

這適用於每一個jQuery的版本低於1.6。現在的問題是,我實際上需要一個jQuery版本1.6和更高版本。原因是,我需要使用更新後的validationEngine。爲什麼,這是因爲每當我使用validationEngine驗證表單時,它實際上超出了表單的範圍,我希望它保留在表單的div中。

爲了防止它發生,我需要補充每當我宣佈validationEngine一些選項,這是我要做的事:

$("#addform").validationEngine({ 
    relative: true, 
    overflownDIV: ".data_container", 
}); 

validationEngine的較新版本要求我至少有1.6及以上jQuery版本。

我已經試過選項/認爲到目前爲止,解決這個是:

  1. 找到一份穩定的jQuery版本,可以同時加載正確

    • 我沒有這個。我試圖用1.4.2之間以及到最新的,這是所有1.7.1版本的jQuery,但沒有運氣
  2. 負載2的jQuery版本

    • 這聽起來不錯,但我嘗試和依然未能
  3. 變化validationEngine成別的東西

    • 這是最後的彩我真的不想拿。我們已經做了很多事情,以至於使用另一個可能需要我們的時間超出我們的時間。

現在,我的真正的問題是,有沒有除了我至今認爲選擇任何的解決方案?沒有更新的js文件用於渲染FilteredSelectMultiple小部件。

+0

你在Django管理員中執行此操作還是試圖在管理員之外使用管理員的FilteredSelectMultiple小部件? – 2012-02-03 22:04:19

+0

嗨,是的,我在管理員之外以自己的形式使用FilteredSelectMultiple小部件。 – 2012-02-06 08:53:59

回答

0

Django目前正在使用jQuery 1.4.2。即使主幹仍在使用該版本。所以所有的小部件等都是考慮到這個版本。最有可能的是,jQuery 1.6+中存在一些向後不兼容的變化。

這意味着你基本上有兩種選擇。

  1. 您可以加載兩個版本的jQuery(1.4.2和1.6+),並將其置於noConflict模式。

  2. 不要使用Django小部件並找到別的東西來滿足1.6+兼容的目的(在Django之外)。

+0

謝謝你的回答。我會盡力爲平均時間做第一個選擇。但我想我們最終會做第二種選擇。 – 2012-02-15 02:20:59

+0

[不確定,但是這個提交可能很容易將其提供,修正/覆蓋什麼](https://github.com/django/django/commit/8bbca211b6d4457e2f7acc3d41e54373f03ecddd)。雖然升級到Djang1.6肯定是比這更好的選擇... – 2014-09-16 13:05:56

相關問題