Исходные данные django-autocomplete-light с помощью виджета Select2

У меня есть поле формы с автозаполнением (с помощью приложения django-autocomplete-light и виджета Select2), которые служат в качестве фильтра поиска и работают как положено.

Когда я отправляю форму и результаты поиска отображаются в списке, я хотел бы установить начальное значение поля формы на ранее отправленное значение, чтобы пользователь мог настроить некоторые параметры поиска вместо настройки всех фильтров поиска с нуля.

Это поле формы будет использоваться для выбора одного из ~10000 значений, поэтому оно мне нужно для загрузки значений по требованию. Поскольку поле формы предварительно не заполнено какими-либо значениями, я понятия не имею, как можно было бы установить начальное значение.

models.py

class Location(models.Model):
    place = models.CharField(max_length=50)
    postal_code = models.CharField(max_length=5)

views.py

class LocationAutocomplete(autocomplete.Select2QuerySetView):
    def get_queryset(self):
        qs = Location.objects.all()
        if self.q:
            qs = qs.filter(place__istartswith=self.q) | qs.filter(postal_code__istartswith=self.q)
        return qs

forms.py

class LocationForm(forms.ModelForm):        
    class Meta:
        model = Location
        fields = ('place',)
        widgets = {
            'place': autocomplete.Select2(url='location_autocomplete')
        }

Какие-либо предложения?

Спасибо!

1 ответ

В вашем views.py, если вы передадите значение места следующим образом:
LocationForm (initial = {'place': place}) будет предварительно заполнен в вашей форме
документы: https://docs.djangoproject.com/en/1.11/ref/forms/fields/

Другие вопросы по тегам