Использование 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.