Django: django-admin-tools: добавление пользовательских js - PullRequest
0 голосов
/ 12 марта 2012

Я установил django-admin-tools и создал dashboard.py в моем проекте папка.

Внутри этого файла я указал медиа класс:

#myproject/dashboard.py 
class Media: 
        css = ('',) 
        js = ('http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/ 
jquery.min.js',) 

В моих настройках у меня есть:

#settings.py
# admin_tools 
ADMIN_TOOLS_INDEX_DASHBOARD = 
'myproject.dashboard.CustomIndexDashboard' 
ADMIN_TOOLS_APP_INDEX_DASHBOARD = 
'myproject.dashboard.CustomAppIndexDashboard' 

И мои URL настроены следующим образом:

#urls.py
... 
urlpatterns+= patterns('', 
        url(r'^admin_tools/', include('admin_tools.urls')), 
        url(r'^admin/', admin.site.urls), 

        url(r'', include('feincms.urls')), 

) 

Кто-нибудь видел какие-либо явные ошибки? Я не вижу файла jquery скачать в firebug. Я предполагаю, что jquery также является частью admin_tools, но это сообщение об ошибке, кажется, указывает, что это не так?

Uncaught TypeError: Property '$' of object [object DOMWindow] is not a 
function 

Любая помощь приветствуется.

Ответы [ 2 ]

1 голос
/ 28 января 2013

Я думаю, это возможно потому, что функция jQuery была переименована в администраторе django, чтобы избежать конфликтов.
Если вы видите загрузку файла jquery в view-source, и при вводе $ в консоли возникает эта ошибка, попробуйте django.jQuery
Если вы хотите использовать $, вам нужно сделать что-то вроде $ = django.jQuery, а затем в нижней части сценария верните его в django.jQuery.
См. Например, https://github.com/philippbosch/django-geoposition/blob/master/geoposition/static/geoposition/geoposition.js.

0 голосов
/ 13 марта 2012

Вы правы, jquery уже включен admin_tools.Если вам не нужна более новая версия, возможно, лучше использовать включенную.Или он не загружается даже без класса Media?

Проблемой в вашей настройке является то, что вы загружаете jquery с внешнего хоста.Я также ожидал бы, что это сработает, однако, если вы посмотрите на шаблон dashboard.html в admin_tools, который внедряет файлы, вы заметите, что он добавляет {{ media_url }} к каждому файлу js.Результатом является недопустимое включение, например '/media/http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'.Это, очевидно, проблема admin_tools, и я бы подал отчет об ошибке.

В качестве обходного пути вы можете удалить класс Media и переопределить dashboard.html, чтобы включить ваши внешние файлы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...