gpt4 book ai didi

python - Django-autocomplete-light 显示空下拉而不是自动完成小部件

转载 作者:行者123 更新时间:2023-12-05 06:26:24 25 4
gpt4 key购买 nike

我正在尝试在我的项目中实现 django-autocomplete-light,但无法弄清楚为什么它不向我显示自动完成小部件,而是一直显示一个空的下拉列表。

我遵循了教程:https://django-autocomplete-light.readthedocs.io/en/3.1.3/tutorial.html .

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

我有以下模型:

class Vilt(models.Model):
vilt_title = models.CharField(max_length=200, unique=True)

我创建了这个自动完成 View :

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',)
from .views import (ViltAutocomplete,
)
urlpatterns = [
#other paths
path('vilt/autocomplete/', ViltAutocomplete.as_view(), name='vilt-autocomplete'),
#other paths
]
{% extends "bierviltje/base.html" %}
{% load static %}
{% load crispy_forms_tags %}

{% block content %}
<div class="container">
#other forms
<div>
<form action="" method="post">
{% csrf_token %}
{{ vilt_search_form|crispy }}
<input type="submit" />
</form>
</div>
#other forms
</div>
{% endblock content %}

{% block javascript %}
{{ vilt_search_form.media }}
{% endblock javascript %}

这是在 base.html 中的 javascript block 之前加载的 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 %}

最佳答案

您发布查询已经有一段时间了。 但如果您还没有找到答案,这里是解决方案:

在您的 ModelForm“ViltSearchForm”中,请将小部件更改为:

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

:

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

但是,如果我可以在这里补充一下,我无法理解在独立模型上使用“自动完成”的原因。

非常感谢您的反馈。

关于python - Django-autocomplete-light 显示空下拉而不是自动完成小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56131320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com