django-smart-choices不能在模板中工作

时间:2016-02-11 11:54:48

标签: javascript django

我在使用django-smart-choose时遇到问题。 在管理面板中,django-smart-choices正常工作但在模板中存在错误。

  

未捕获的ReferenceError:未定义chainedfk

$(document).ready(function() {
            chainedfk.init(chainfield, url, id, value, empty_label, auto_choose);
});

Mt urls:

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^chaining/', include('smart_selects.urls')),
    url(r'^$', 'avtocry.views.index'),
    url(r'^/', include('advdesk.urls')),
    url(r'^createadv/', 'advdesk.views.createadv',name='createadv')
]

tamplate file

 {% extends 'base.html' %}

 {% block content %}

    <div class="wrapper">
    <form action='{% url 'createadv' %}' method="post">
        {% csrf_token %}
       {{ form }}
        <input type="submit" value="OK">
    </form>
    </div>

{% endblock %}

基础文件包

<script src="{% static 'js/jquery-2.1.4.min.js' %}"></script>

html输出

template

admin

5 个答案:

答案 0 :(得分:5)

以下是我如何解决这个问题,由于某些原因我不知道,一个名为chainedfk.js的文件丢失了。经过一番挖掘后,我发现此文件存在于此路径中&#39; smart-choices / admin / js / chainedfk.js&#39;在库文件中。 所以我只是添加了这个导入行我的base.html文件。

*我删除了标签,以便可见。

  

script src =&#34; {%static&#39; smart-choices / admin / js / chainedfk.js&#39; %}&#34;

在js导入行之后,它就像魅力一样:)

答案 1 :(得分:1)

更新 - 2017年5月

对不起,截至目前情况有所改变,我的表单也拒绝加载但是它加载了一段时间,所以你必须在jquery和包含chainedfk.js的标签之后包含下面的标签

这对于django 1.10.5和Django 1.11都很有效 - (这篇文章的最新版本) - Python 3.5.2

<script type="text/javascript" src="{% static 'smart-selects/admin/js/chainedfk.js' %}"></script>
<script type="text/javascript" src="{% static 'smart-selects/admin/js/chainedm2m.js' %}"></script>
<script type="text/javascript" src="{% static 'smart-selects/admin/js/bindfields.js' %}"></script>

答案 2 :(得分:0)

我遇到了同样的问题,但没有收到任何错误。 当我加入时它也适用于我:

<script src="{% static 'smart-selects/admin/js/chainedfk.js' %}"></script>

答案 3 :(得分:0)

要100%正确,您必须使用此特定订单导入文件:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js </script>
<!-- Smart select -->
<script src="{% static 'smart-selects/admin/js/chainedfk.js' %}"></script>
<script src="{% static 'smart-selects/admin/js/chainedm2m.js' %}"></script>

答案 4 :(得分:0)

通过将{{form.media.js}}放入所需的JavaScript来为我工作。 所以:

{% block headjavascript %}{{ form.media.js }}{% endblock %}

哪个是加载javascript的更好做法