2012-02-02 3 views
1

Я делаю проект Django, что необходимо мне использовать FilteredSelectMultiple и это пример того, как это выглядит:Использование версии JQuery 1.6 и выше, делает 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, который может загружать как правильно

    • я потерпел неудачу в этом. Я пытался использовать все версии JQuery между 1.4.2 и до последней, которая является 1.7.1, но не везло
  2. версии Load 2 JQuery

    • Это звучит хорошо, но я пытались и до сих пор не удалось
  3. Изменить validationEngine в нечто другое

    • Это последний чой что я действительно не хочу принимать. Мы уже сделали так много, что использование другого может потребовать времени, которое больше, чем у нас.

Теперь, мой вопрос в том, есть какое-либо решение, кроме вариантов, которые я думал до сих пор? Обновленных js-файлов для отображения виджета FilteredSelectMultiple пока нет.

+0

Вы делаете это в администраторе Django или пытаетесь использовать виджет FilteredSelectMultiple администратора в своей собственной форме вне администратора? –

+0

Привет, да, я использую виджет FilteredSelectMultiple в моей собственной форме вне администратора. –

ответ

0

Django в настоящее время является отправкой с помощью jQuery 1.4.2. Даже туловище все еще использует эту версию. Таким образом, все виджеты и т. Д. Построены с учетом этой версии. Скорее всего, в jQuery 1.6+ произошло некорректное изменение в обратном направлении.

Это означает, что у вас есть по существу два варианта.

  1. Вы можете загрузить две версии jQuery (1.4.2 и 1.6+) и поместить их в режим noConflict.

  2. Не используйте виджет Django и найдите что-то другое, чтобы удовлетворить цель (за пределами Django), совместимую с 1.6+.

+0

Благодарим вас за ответ. Я попытаюсь сделать первый вариант для среднего времени. Но я думаю, что мы закончим второй вариант. –

+0

[Не уверен, но это фиксация может легко отдать, что исправить/переопределить] (https://github.com/django/django/commit/8bbca211b6d4457e2f7acc3d41e54373f03ecddd). Хотя обновление до Djang1.6, безусловно, будет лучшим вариантом, чем это ... –