django-select2 в Django

Сходу использовать django_select2 в админке Django не получается из-за того, что django_select2 требует JQuery. Виджет django_select2 по умолчанию не подключает JQuery. Более подробно об этом вы можете прочитать на странице Добавить jquery в widget Django.

Чтобы быстро подключить jQuery к django_select2, сделайте следующее:

1. Подключите django-select2

Установите django_select2:

pip install django_select2

Добавьте пакет в ISTALLED_APPS:

INSTALLED_APPS = (
    ...
    'django_select2',
)

Если используете ModelWidgets, то добавьте и урлы:

url(r'^select2/', include('django_select2.urls')),

2. Создайте свой кастомный виджет на основе Select2Widget

my_app/widgets.py
from django_select2.forms import Select2Widget as BaseSelect2Widget

class Select2Widget(BaseSelect2Widget):
    """
    Added jquery to widget
    """
    def _get_media(self):
        media = super(Select2Widget, self)._get_media()
       
        extra = '' if settings.DEBUG else '.min'
        js = ['vendor/jquery/jquery%s.js' % extra, 'jquery.init.js']
        js = ['admin/js/%s' % url for url in js]
        js.append('my_app/admin_compat.js')

        # insert scripts before Select2Widget scripts
        for i, url in enumerate(js):
            media._js.insert(i, url)

        return media

    media = property(_get_media)

3. Используйте кастомный виджет в своём коде:

my_app/forms.py
from my_app.widgets import Select2Widget

class MyForm(forms.Form):
   my_choice = forms.ChoiceField(widget=Select2Widget)

Теперь должно заработать.

Во втором шаге использовалась версия jQuery, которая входит в состав Django. но вы можете использовать свою версию jQuery. Как это сделать и другие настройки вы можете прочитать на странице Добавить jquery в widget Django.

Оцените статью

0 из 5 (всего 0 оценок)

Поля, отмеченные звёздочкой ( * ) , являются обязательными.

Спасибо за ваш отзыв!

После нажатия кнопки "Отправить" ваше сообщение будет доставлено мне на почту.

Автор статьи

Права на использование материала, расположенного на этой странице https://vivazzi.pro/it/django-select2-in-django/:

Разрешается копировать материал с указанием её автора и ссылки на оригинал без использования параметра rel="nofollow" в теге <a>. Использование:

Автор статьи: Мальцев Артём
Ссылка на статью: <a href="https://vivazzi.pro/it/django-select2-in-django/">https://vivazzi.pro/it/django-select2-in-django/</a>

Подробнее: Правила использования сайта

Комментариев: 0

Вы можете оставить комментарий как незарегистрированный пользователь.

Но зарегистрировавшись, вы сможете:

  • получать оповещения об ответах
  • просматривать свои комментарии
  • иметь возможность использовать все функции разработанных сервисов

Для комментрирования от своего имени, войдите или зарегистрируйтесь обычным способом или через социальные сети:

Отправить

На данный момент нет специального поиска, поэтому я предлагаю воспользоваться обычной поисковой системой, например, Google, добавив "vivazzi" после своего запроса.

Попробуйте