Использование jquery версии 1.6 и выше делает Django's FilteredSelectMutliple непригодным для использования - PullRequest
1 голос
/ 02 февраля 2012

Я делаю проект Django, который требует, чтобы я использовал FilteredSelectMultiple, и это пример того, как это выглядит:

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

Конечно, в шаблоне я правильно назвал SelectBox, 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. Загрузить 2 версии jQuery

    • Звучит хорошо, но я попробовал и все-таки не смог
  3. Измените validationEngine на что-то другое

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

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

1 Ответ

0 голосов
/ 06 февраля 2012

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

Это означает, что у вас, по сути, есть два варианта.2 и 1.6+) и переведите один в режим noConflict.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...