[英]Django - django-autocomplete-light setup how to
我正在按照如何設置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>
Forms.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')
Views.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中時,它只有三個沒有輸入字段的下拉菜單(因為沒有任何地方可以輸入)。 誰能看到我失蹤的東西?
任何幫助將不勝感激。
我遇到了同樣的問題並且能夠解決它。 我有2個問題。 我忘記在我加載的表單下面加載{{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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.