来自db的Django autocomplete-light v3

时间:2017-04-30 13:09:54

标签: django django-autocomplete-light

我已经使用Jquery直接在HTML页面中制作它,但我认为由于大项目列表不是一个好的解决方案。我认为最好在db中存储一个巨大的列表,而不是在我的情况下自动编译该字段。
我想要自动编译(带机场名称)两个字段(出发地和目的地)。所以在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机场填充数据库(我使用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'),
        }

0 个答案:

没有答案