Использование django-towns-light с django-crispy-forms и django-ajax-select

Мне нужно иметь форму, где пользователь вводит имя, адрес электронной почты и выбирает город и страну. Я использую django-towns-light, чтобы заполнить базу данных списком городов и стран.

Затем я создаю форму, используя django-crispy-формы, используя модель базы данных, как показано ниже.

Models.py

from cities_light.models import City, Country

class CustomModel(models.Model):
    name = models.CharField(max_length=500)
    email = models.EmailField(blank=True)
    city = models.ForeignKey(City)
    country = models.ForeignKey(Country)

Forms.py

Class EntryForm(forms.ModelForm):
    class Meta:
        model = CustomModel

    def __init__(self, *args, **kwargs):
        super(EntryForm, self).__init__(*args, **kwargs)

        self.helper = FormHelper(self)
        self.helper.layout.append(ButtonHolder(
            Submit('save', 'Save', css_class='btn-primary')
            )
        )

Использование этого в представлении дает мне форму с двумя текстовыми полями (для имени, адреса электронной почты) и двумя полями выбора (для города, страны). Теперь, поскольку количество городов довольно велико, я хочу изменить их на текстовые поля, которые используют django-ajax-select, чтобы показывать названия городов или стран, когда пользователь начинает печатать.

Раздел документации предоставляет AJAX_LOOKUP_CHANNELS, но я не совсем понимаю, как изменить мою форму и затем соединить ее с помощью ajax-select. Любая помощь высоко ценится.

1 ответ

См. Документацию по django-ajax-select для использования django-ajax-select: https://github.com/crucialfelix/django-ajax-selects

Обратите внимание, что @ yourlabs мы сейчас используем django-autocomplete-light, поэтому он больше не поддерживается, но он доступен для пользователей, которые еще не перешли на django-autocomplete-light.

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