Select2 - не показывает / удаляет начальные значения - PullRequest
0 голосов
/ 17 октября 2018

Я использую django-filter для фильтрации Article набора запросов.Article имеет поле locations:

locations = models.ManyToManyField('locations.Location', related_name='articles')

Я фильтрую Articles по полю locations и в качестве виджета я использую django-autocomplete-light widget Select2Multiple.

class ArticleFilter(django_filters.FilterSet):
    from locations.models import Location
    ...
    locations = django_filters.ModelMultipleChoiceFilter(method='locations_filter',queryset=Location.objects.all(),label='Lokality')
    ...

    class Meta:
        model = Article
        fields = ['locations','title','price_lte','price_gte','price_currency'
        ]

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        # HERE I SPECIFY THE DAL WIDGET
        self.form.fields['locations'].widget = autocomplete.Select2Multiple(url="locations:locations_autocomplete")

Фильтрация работает хорошо, автозаполнение тоже: enter image description here

Когда я нажимаю на кнопку «Отправить», она показывает правильно отфильтрованные результаты, строка запроса URL-адреса содержит все отфильтрованные атрибуты, включая, например, locations=45но он не показывает location с id=45 в качестве начального значения для поля locations.

enter image description here

Странная вещьчто если я удаляю виджет, то вижу, что изначально есть начальное значение:

enter image description here

Просто Select2 не показывает его изначение местоположения undefinfed.

Я использую этот же подход на raw django.forms, и он работает правильно.Инициалы тоже.

Знаете ли вы, где может быть проблема?

...