我需要有一个表单,用户输入姓名,发送电子邮件并选择城市和国家/地区。我正在使用django-cities-light使用城市和国家/地区列表填充数据库。
然后,我使用数据库模型使用django-crispy-forms创建表单,如下所示。
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')
)
)
在视图中使用它会给我一个表单,其中包含两个文本字段(用于名称,电子邮件)和两个选择字段(用于城市,国家/地区)。现在,由于城市数量非常多,我希望将这些更改为使用django-ajax-selects显示用户开始输入时的城市或国家/地区名称的文本字段。
documentation的一部分提供了AJAX_LOOKUP_CHANNELS,但我不太明白如何更改我的表单然后将其与ajax-choices连接。任何帮助都非常感谢。
答案 0 :(得分:3)
请参阅django-ajax的文档 - 选择django-ajax-选择用法:https://github.com/crucialfelix/django-ajax-selects#quick-installation
请注意,@ yourlabs我们现在使用django-autocomplete-light,因此它不再受支持了,但它还没有迁移到django-autocomplete-light的用户。