gpt4 book ai didi

jquery - Django - django-autocomplete-light 设置如何

转载 作者:行者123 更新时间:2023-11-28 18:27:08 24 4
gpt4 key购买 nike

我正在按照有关如何设置 django-autocomplete 字段的教程进行操作,但我正在努力使其正常工作。这是教程:https://django-autocomplete-light.readthedocs.io/en/master/tutorial.html

设置已安装的应用

INSTALLED_APPS = (
'dal',
'dal_select2',
'django.contrib.admin',

项目 urls.py

from textchange.views import TextbookAutoComplete


urlpatterns = [
url(r'^textbook-autocomplete$', TextbookAutoComplete.as_view(), name='textbook-autocomplete'),

HTML

<form method="POST"> {% csrf_token %}
{% for field in form3 %}
{{ field }}
{% endfor %}
<input id="search" class="button" type="submit" value="Search Textbooks" name="Search"></input>
</form>

表格.py

class Search(forms.ModelForm):
longschool = forms.ModelChoiceField(
queryset=Textbook.objects.all(),
widget=autocomplete.ModelSelect2(url='textbook-autocomplete')
)
class_name = forms.ModelChoiceField(
queryset=Textbook.objects.all(),
widget=autocomplete.ModelSelect2(url='textbook-autocomplete')
)
isbn = forms.ModelChoiceField(
queryset=Textbook.objects.all(),
widget=autocomplete.ModelSelect2(url='textbook-autocomplete')
)

class Meta:
model = Textbook
fields = ('longschool', 'class_name', 'isbn')

View .py

class TextbookAutoComplete(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 Textbook.objects.none()

qs = Textbook.objects.all()

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

return qs

添加了 Jquery

  <script type="text/javascript" src="{% static "admin/js/jquery.js" %}"></script>

当表单出现在我的 html 中时,它只有三个没有输入字段的下拉列表(就像没有任何地方可以输入一样)。谁能看到我错过了什么?

如有任何帮助,我们将不胜感激。

最佳答案

我刚刚遇到了同样的问题并且能够解决它。我有两个问题。我忘记在我加载的表单下方加载 {{form.media}}

确保在安装django-autocomplete-light 包后运行python manage.py collectstatic 命令。 (这会将这个第三方包的静态文件复制到你自己的静态文件夹中)。

django-autocomplete-light 试图从表单加载这些静态文件static/admin/js/vendor/,但由于某些原因文件不存在且无法加载。我手动将 javascript 和 css 文件包含在模板的标题中,其中加载了带有自动完成输入的表单,并且最终起作用了:

在模板中加载表单时:

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.full.js"></script>
</head>
<body>
{{ form.as_p }}
{{ form.media }}
</body>

关于jquery - Django - django-autocomplete-light 设置如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40566324/

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