我试图实现自动完成以下django-autocomplete-light tutorial
,我可以确认自动完成视图创建成功,直接输入 url 如下。
但是,当我使用表单视图测试时,自动完成不工作,并在控制台中得到以下错误。
Uncaught ReferenceError:yl 未定义
有谁知道是什么原因导致这个问题,以及如何解决这个问题?
html page {% extends "base.html" %}
{% load crispy_forms_tags %}
{% crispy document_form document_form.helper %}
{% load staticfiles %}
{% block content %}
<script src="{% static 'vendor/js/select2.js' %}"></script>
<link rel="stylesheet" type="text/css" href="{% static 'css/form.css' %}" />
<link rel="stylesheet" type="text/css" href="{% static 'vendor/css/select2.css' %}" />
<h3>Upload Project</h3>
{% crispy form %}
{% endblock %}
forms.py
from django import forms
from project.models import html
from django.forms import widgets
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Submit
from dal import autocomplete
class DocumentForm(forms.ModelForm):
def __init__(self,*args,**kwargs):
super(DocumentForm,self).__init__(*args,**kwargs)
self.helper=FormHelper(self)
self.helper.form_id='projectForm'
self.helper.form_method='post'
self.helper.add_input(Submit('submit', 'Submit'))
class Meta:
model=html
fields=['project','version','diff','program','location','certificate','user','html','idf','eso']
wdigets={
'project':autocomplete.ModelSelect2(url='project:project-autocomplete')
}
class ProjectAutocomplete(autocomplete.Select2QuerySetView):
def get_queryset(self):
qs=html.objects.all()
if self.q:
qs=qs.filter(project__istartswith=self.q)
return qs
您缺少静态文件,而不仅仅是 select2.js。您应该拥有所有这些:CSS
<link rel="stylesheet" type="text/css" href="{% static 'vendor/select2/dist/css/select2.css' %}">
<link rel="stylesheet" type="text/css" href="{% static 'autocomplete_light/select2.css' %}">
JS(简体)
<script src="{% static 'autocomplete_light/jquery.init.js' %}"></script>
<script src="{% static 'autocomplete_light/autocomplete.init.js' %}"></script>
<script src="{% static 'vendor/select2/dist/js/select2.full.js' %}"></script>
<script src="{% static 'autocomplete_light/select2.js' %}"></script>
<script src="{% static 'autocomplete_light/forward.js' %}"></script>
<script src="{% static 'autocomplete_light/jquery.post-setup.js' %}"></script>
这是自动完成工作需要在最后一页上显示的内容,但是将它们添加到模板的正确方法应该是在模板中包含此变量
{{form.media}}
这应该做的伎俩:-)
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(87条)