Python Django autocomplete指示灯显示空下拉列表,而不是autocomplete小部件

Python Django autocomplete指示灯显示空下拉列表,而不是autocomplete小部件,python,django,django-autocomplete-light,Python,Django,Django Autocomplete Light,我试图在我的项目中实现django autocomplete light,但无法理解为什么它没有显示autocomplete小部件,而是一直显示一个空下拉列表 我遵循了教程: 我发现这个问题在其他stackoverflow问题中也出现过,但到目前为止,这些答案都没有帮助我 我有以下型号: class Vilt(models.Model): vilt_title = models.CharField(max_length=200, unique=True) 我创建了这个自动完成视图: c

我试图在我的项目中实现django autocomplete light,但无法理解为什么它没有显示autocomplete小部件,而是一直显示一个空下拉列表

我遵循了教程:

我发现这个问题在其他stackoverflow问题中也出现过,但到目前为止,这些答案都没有帮助我

我有以下型号:

class Vilt(models.Model):
    vilt_title = models.CharField(max_length=200, unique=True)
我创建了这个自动完成视图:

class ViltAutocomplete(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 Vilt.objects.none()
        qs = Vilt.objects.all().order_by('vilt_title')

        if self.q:
            qs = qs.filter(vilt_title__istartswith=self.q)

        return qs
我使用这个ModelForm来指定小部件

from .models import Vilt
from dal import autocomplete

class ViltSearchForm(forms.ModelForm):
  vilt_title = forms.ModelChoiceField(
    queryset = Vilt.objects.all(),
    widget = autocomplete.ModelSelect2(url='vilt-autocomplete')
  )

  class Meta:
    model = Vilt
    fields = ('vilt_title',)
{%extensed“bierviltje/base.html”%}
{%load static%}
{%load crispy_forms_tags%}
{%block content%}
#其他形式
{%csrf_令牌%}
{{vilt_search_form | crispy}}
#其他形式
{%endblock内容%}
{%block javascript%}
{{vilt_search_form.media}
{%endblock javascript%}
这是在base.html中的Javascript块之前加载的Javascript:

<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
{% block javascript %}
{% endblock javascript %}

{%block javascript%}
{%endblock javascript%}

自从您发布查询以来,已经有一段时间了但如果您尚未找到答案,以下是解决方案:

在您的模型表单“ViltSearchForm”中,请将小部件更改为:

widget = autocomplete.ModelSelect2(url='vilt-autocomplete')
widget = autocomplete.ListSelect2(url='vilt-autocomplete')

widget = autocomplete.ModelSelect2(url='vilt-autocomplete')
widget = autocomplete.ListSelect2(url='vilt-autocomplete')
然而,如果我可以在这里补充,我无法理解在独立模型上使用“自动完成”的原因


非常感谢您的反馈。

我敢打赌,是脆模板过滤器影响了它。您可以通过将
|crispy
替换为
|as|p
@schillingt来确定原因。谢谢您的回复。我试着把它改成{{vilt_search_form.as_p}。现在看起来更糟,但功能没有改变。不幸的是,这似乎不是问题所在。javascript是否正常工作,是否生成对服务器的请求?服务器只是返回空数据集吗?好的,这很好。它消除了这一潜在问题。您现在需要检查javascript是否正在生成对正确url的请求。你可以使用浏览器的开发工具来实现这一点。这是不可能的。它不会生成对你想要的URL的请求。检查HTML元素,确保它与库的任何演示示例相似。如果有错误,请查看控制台。如果html中存在差异,请搜索原因。它有一个错误,考虑什么导致它和/或搜索它,看看别人做了什么。祝你好运