使用django cities light搭配django crispy forms和django ajax选择

使用django cities light搭配django crispy forms和django ajax选择,django,django-crispy-forms,django-ajax-selects,Django,Django Crispy Forms,Django Ajax Selects,我需要有一个表单,用户输入姓名,电子邮件,并选择一个城市和国家。我正在用城市和国家的列表填充数据库 然后,我使用数据库模型创建一个表单,如下所示 Models.py Forms.py 在视图中使用此选项可以生成一个表单,其中包含两个文本字段(用于名称、电子邮件)和两个选择字段(用于城市、国家)。现在,由于城市数量非常多,我希望将这些字段改为文本字段,当用户开始键入时,这些字段用于显示城市或国家的名称 的一部分提供了AJAX_LOOKUP_通道,但我不太明白如何更改表单,然后将其与AJAX连接。非

我需要有一个表单,用户输入姓名,电子邮件,并选择一个城市和国家。我正在用城市和国家的列表填充数据库

然后,我使用数据库模型创建一个表单,如下所示

Models.py Forms.py 在视图中使用此选项可以生成一个表单,其中包含两个文本字段(用于名称、电子邮件)和两个选择字段(用于城市、国家)。现在,由于城市数量非常多,我希望将这些字段改为文本字段,当用户开始键入时,这些字段用于显示城市或国家的名称


的一部分提供了AJAX_LOOKUP_通道,但我不太明白如何更改表单,然后将其与AJAX连接。非常感谢您的帮助。

有关django ajax Select的用法,请参阅django ajax Select文档:

请注意,@yourlabs我们现在使用的是django autocomplete light,因此不再真正支持它,但它是为尚未迁移到django autocomplete light的用户提供的

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)
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')
            )
        )