django-autocomplete-light无法找到.js脚本

时间:2015-11-21 19:31:34

标签: jquery django django-autocomplete-light

我想让django-autocomplete-light在我的应用中运行。我想我已经完成了所有设置。

似乎问题的一点是,当我包括:     {%include'autocomplete_light / static.html'%}。我认为我的应用程序没有找到下面列出的必要的.js文件。当我进入目录时,我看不到文件。我认为github下载应该包含这些文件。我应该在哪里下载这些js文件?或者目录结构可能不正确?

[21/Nov/2015 10:59:30] "GET /static/autocomplete_light/autocomplete.js HTTP/1.1" 404 1715
[21/Nov/2015 10:59:30] "GET /static/autocomplete_light/django_admin.js HTTP/1.1" 404 1715
[21/Nov/2015 10:59:30] "GET /static/autocomplete_light/text_widget.js HTTP/1.1" 404 1712
[21/Nov/2015 10:59:30] "GET /static/autocomplete_light/widget.js HTTP/1.1" 404 1697
[21/Nov/2015 10:59:30] "GET /static/autocomplete_light/style.css HTTP/1.1" 404 1697
[21/Nov/2015 10:59:30] "GET /static/autocomplete_light/addanother.js HTTP/1.1" 404 1709
[21/Nov/2015 10:59:30] "GET /static/autocomplete_light/remote.js HTTP/1.1" 404 1697

HTML:

{% load staticfiles %}

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

$(document).ready(function() {
    $('#add_user_accounts').InstitutionAutocomplete({
        url: '{% url 'add_user_accounts' %}',
        choiceSelector: 'a',
    }).input.bind('selectChoice', function(e, choice, autocomplete) {
        document.location.href = choice.attr('href');
    });
});

</script>

{% include 'autocomplete_light/static.html' %}

<input type="text" name="q" id="add_users_accounts" placeholder="Find your institution" style="width: 270px; font-size: 12px;" />
<style type="text/css">
    /* cancel out django default for now, or choices are white on white */
    #header a.choice:link, #header a.choice:visited {
        color: black;
    }
</style>

目录结构:

app/
    static/jquery.js
autocomplete_light/

2 个答案:

答案 0 :(得分:0)

我遇到了同样的404错误。在我正确地重新安装django-autocomplete-light后,它得到了解决。

对于我的情况,这是因为我安装了我以zip格式下载并解压缩到本地目录的软件包:

pip install -e path_to_downloaded_package_extracted

显然有些文件未被复制或某些链接未正确创建。

然后我开始了一个新的虚拟环境并尝试了tar.gz格式,如下所示:

pip install --no-index -f ~/path_to_local_cache django-autocomplete-light

比它有效。所有文件都已启动并正在运行。 请注意,必须将所有必需的包下载到pip的同一目录中才能处理依赖关系链。

答案 1 :(得分:0)

引用documentation

配置

然后让Django找到我们需要的静态文件,方法是在django.contrib.admin和grappelli之前添加到INSTALLED_APPS 礼物:

 'dal',
 'dal_select2',
  # 'grappelli', 
 'django.contrib.admin',

这是要覆盖管理员提供的jquery.init.js脚本, 使用noConflict设置jQuery,使jQuery在 仅django.jQuery,而不是$。

要启用更多DAL功能,我们将不得不添加其他DAL应用 到INSTALLED_APPS,例如“ dal_queryset_sequence”

因此,您需要确保已正确配置INSTALLED_APPS。