django-autocomplete-light在表单中显示空下拉列表

我正在尝试使用django-autocomplete-light来自本教程https://github.com/yourlabs/django-autocomplete-light/blob/master/docs/tutorial.rst

我用pip安装它并将其添加到我的设置文件中

INSTALLED_APPS = ( 'dal', 'dal_select2', 

对于我的租户价值

我的租户模型是

 class Tenant(CommonInfo): version = IntegerVersionField( ) first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=40) def __unicode__(self): return u'%s %s %s ' % ("#", self.id,"first_name", self.first_name, "last_name") 

在我的自动完成视图中:

 from django.shortcuts import render from dal import autocomplete from client.models import Tenant class TenantAutocomplete(autocomplete.Select2QuerySetView): def get_queryset(self): # Don't forget to filter out results depending on the visitor ! if not self.request.user.is_authenticated(): return Tenant.objects.none() qs = Tenant.objects.all() if self.q: qs = qs.filter(last_name__istartswith=self.q) return qs 

在自动完成url中

 from django.conf.urls import url, include,patterns from client import views urlpatterns = [ url( r'^tenant-autocomplete/$', views.TenantAutocomplete.as_view(), name='tenant-autocomplete', ), ] 

并以forms

 class LeaseTenantForm(forms.ModelForm): tenant = forms.ModelChoiceField( queryset=LeaseTenant.objects.all(), widget=autocomplete.ModelSelect2(url='tenant-autocomplete') ) class Meta: model = LeaseTenant exclude = ['lease'] 

但是在浏览器中渲染后,我没有看到输入文本字段,而是看到空的下拉列表。 在实际看来

 def tenant_new(request,pk,uri): lease = get_object_or_404(Lease, pk=pk) title = 'tenant' uri = _get_redirect_url(request, uri) if request.method == "POST": form = LeaseTenantForm(request.POST) if form.is_valid(): tenant = form.save(commit=False) tenant.lease = lease tenant.save() messages.add_message(request, messages.SUCCESS, str(tenant.id) + "-SUCCESS Object created sucssefully") return redirect(uri) else: form = LeaseTenantForm() return render(request, 'object_edit.html', {'form': form, 'title': title, 'extend': EXTEND}) 

我的模板文件

 {% block title %} Add/Edit {{ title }} {% endblock title %} {% block content %} 

{{ title }}


{% csrf_token %} {{ form|crispy}} {{ form.media }}

{% endblock content %}

所以基本上自动完成function不起作用。 我应该validation什么才能使它工作?

在此处输入图像描述

我遇到了同样的问题。 这是一个很好的参考: django-autocompletion-light简单外键完成显示不可编辑的下拉窗口小部件

确保在头文件中加载jquery,并使用表单的{{ form.media }}标记。

以下是我在头文件中加载jquery的方法:

   

此外,您是否尝试过访问tenant-autocomplete/ url以查看是否在该页面上获得了结果,如教程https://django-autocomplete-light.readthedocs.io/en/master/tutorial中所述。 HTML

如果您无法从url获取应该是您修复的第一个错误的结果。