【问题标题】:django-autocomplete-light can't locate .js scriptdjango-autocomplete-light 找不到 .js 脚本
【发布时间】:2015-11-21 19:31:34
【问题描述】:

我正在尝试让 django-autocomplete-light 在我的应用程序中工作。我想我已经完成了所有设置。

一个问题似乎是当我包括: {% 包括 '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/

【问题讨论】:

    标签: jquery django django-autocomplete-light


    【解决方案1】:

    我遇到了同样的 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 处理依赖链。

    【讨论】:

      【解决方案2】:

      引用documentation

      配置

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

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

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

      要启用更多 DAL 功能,我们必须添加其他 DAL 应用 到 INSTALLED_APPS,比如‘dal_queryset_sequence’

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-09-20
        • 1970-01-01
        • 2021-10-14
        • 2019-08-12
        • 2017-03-26
        • 1970-01-01
        • 2015-10-15
        • 2013-01-06
        相关资源
        最近更新 更多