我有一个模型,其位置字段映射到 city_light.city,我正在使用一个自动完成字段,允许用户输入他们的城市并将其自动完成到正确/有效的位置模型实例。
class Profile(models.Model):
location = models.ForeignKey(City, blank=True, null=True)
class ProfileForm(ModelForm):
class Meta:
model = Profile
fields = ('location')
widgets = {
'location': autocomplete_light.TextWidget(CityAutocomplete, autocomplete_js_attributes={'placeholder':'City, Country', 'minimum_characters':4})
}
表单字段的工作方式与宣传的完全一样,并显示了自动完成选项列表。但是,当我保存表单/模型时,我收到一个验证错误,这似乎是由于字段未转换为 City 模型实例的主键引起的。
Select a valid choice. That choice is not one of the available choices.
我猜我需要像下面实现的 CityAutocomplete 一样扩展 AutocompleteModelBase,但我不确定如何并且我一直无法找到一个工作示例。
class CityAutocomplete(autocomplete_light.AutocompleteModelBase):
search_fields = ('search_names',)
https://github.com/yourlabs/django-cities-light/blob/master/cities_light/contrib/autocompletes.py
感谢您的帮助,如果我的问题格式不正确,我很抱歉。