Django自动完成灯光v3来自db

Django自动完成灯光v3来自db,django,django-autocomplete-light,Django,Django Autocomplete Light,我已经用Jquery直接在HTML页面中实现了这一点,但我认为这不是一个好的解决方案,因为有一个大的项目列表。我认为最好在数据库中存储一个巨大的列表,而不是在我的情况下自动编译字段。 我想自动编译(与机场名称)两个字段(出发和目的地)。因此,在models.py中,我创建了两个类: class Aero(models.Model): departure = models.CharField(max_length=20) destination = models.CharField

我已经用Jquery直接在HTML页面中实现了这一点,但我认为这不是一个好的解决方案,因为有一个大的项目列表。我认为最好在数据库中存储一个巨大的列表,而不是在我的情况下自动编译字段。
我想自动编译(与机场名称)两个字段(出发和目的地)。因此,在models.py中,我创建了两个类:

class Aero(models.Model):
    departure = models.CharField(max_length=20)
    destination = models.CharField(max_length=20)

class AirportName(models.Model):
    air_name= models.CharField(max_length=70)
我用3000 airport填充数据库(我使用AirportName类来实现这一点)。现在,我希望当用户开始在出发或目的地字段(在表单中)中输入数字时,它将显示可能匹配机场列表。我读了文档,但我不明白怎么做,也许我搞错了

url.py:

url(
    r'^fly-autocomplete/$',
    Fly.as_view(),
    name='fly-autocomplete',
),
views.py:

class Fly(autocomplete.Select2QuerySetView):

def get_queryset(self):
    form = AeroForm()
    qs = AirportName.objects.all()
    if self.q:
        qs = qs.filter(name__istartswith=self.q)
    return qs
forms.py:

class AeroForm(forms.ModelForm):
    class Meta:
        model = Aero
        fields = ('__all__')
        widgets = {
            'departure': autocomplete.ModelSelect2(url='fly-autocomplete'),
            'destination': autocomplete.ModelSelect2(url='fly-autocomplete'),
        }

您是否能够
反向('fly-autocomplete')
?在url.py中,我添加“from django.core.urlsolvers import reverse”,然后添加“print(反向('fly-autocomplete'))”。在提示中显示“/fly autocomplete/”OK。下一步:您是否能够执行
127.0.0.1:8000/飞行自动完成/?q=a
?或者不管这个url的完整url是什么。不,如果我使用那个链接,它会给我这个错误:FieldError at/fly autocomplete/无法将关键字“name”解析到字段中。选项有:air_name,id请求方法:GET请求URL:Django版本:1.11异常类型:FieldError异常值:无法将关键字“name”解析为字段。选项有:air\u name,id这是因为您的模型中没有
name
字段。更改为:
qs=qs.filter(air\u name\uu istartswith=self.q)
,然后重试。