2016-02-11 3 views
2

У меня проблема с использованием django-smart-selects. На панели администратора django-smart-selects работает правильно, но в шаблонах есть ошибка.django-smart-selects не работает в шаблонах

Uncaught ReferenceError: chainedfk is not defined

$(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 файл

{% 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 %} 

базовый файл contais

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

HTML выход

template

admin

+0

Ошибка вы видите это Javascript связаны. Похоже, вы не загрузили соответствующие библиотеки, чтобы иметь возможность называть chainedfk. – SaeX

+0

Я понимаю это, но я не понимаю, что я могу сделать. Я думаю, что chainedfk.js должен быть загружен автоматически – Oleg

+0

Ну, покажите нам шаблон/HTML, в который вы включаете библиотеки интеллектуального выбора? – SaeX

ответ

5

Вот как я решил эту проблему, по какой-то неизвестной причине мне, файл с именем chainedfk.js отсутствует. После небольшого копания я обнаружил, что этот файл существует в этом пути «smart-selects/admin/js/chainedfk.js» в файлах библиотеки. Поэтому я просто добавил эту строку импорта в файл base.html.

* Я удалил теги, чтобы их можно было увидеть.

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

после импорта линии Js и он работал как шарм :)

+0

работал отлично, используя django 1.10.5 –

0

я имел такую ​​же проблему, но без получения каких-либо ошибок. он работал для меня тоже, когда я включил:

<script src="{% static 'smart-selects/admin/js/chainedfk.js' %}"></script> 
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> 
1

UPDATE - май- 2017

Извините, на данный момент все изменилось, моя форма также отказалась загружать, и все же она загружалась некоторое время назад, поэтому вам нужно включить тег ниже, сразу после jquery и тега, который содержит chainedfk.js

Это работает очень хорошо и для Джанго 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> 
+0

Я использовал jquey версию 2, версия 3 немного упрямая – dungu

Смежные вопросы