2012-02-02 19 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

相关问题