Я развернул приложение Django для Google App Engine. Он использует grappelli в приложении admin для дополнительной потрясаемости, и хотя он, кажется, работает нормально, есть один огромный камнем преткновения, от которого я не могу избавиться. Эта проблема упоминается here и проявляется в виде списка в приложении администратора. Невозможно выбрать модели из списка и выполнить любое из предопределенных действий над ними.Использование Django/Grappelli в Google App Engine вызывает ошибку Javascript в списках в admin
На всех представлениях списка в приложении администратора, я получаю ошибку JavaScript:
Uncaught TypeError: Object [object Object] has no method 'actions'
, который находит его происхождение в следующем фрагменте кода Javascript:
<script type="text/javascript" charset="utf-8">
(function($) {
$(document).ready(function() {
$("tr input.action-select").actions();
});
})(grp.jQuery);
</script>
вещи я сделал:
- Я развернул grappelli, добавив пакет в свое приложение Django.
- Я добавил
STATIC_ROOT
и STATIC_URL в моемsettings.py
. - Я запустил
manage.py collecstatic
для сбора статических файлов перед развертыванием. Все статические файлы теперь находятся в статическом каталоге в корне приложения, как указано вsettings.py
. - Я проверил сгенерированный источник страницы, и кажется, что все необходимые библиотеки Javascript правильно включены из соответствующих статических каталогов. Я дважды проверял это, сравнивая сгенерированный источник страницы с локальной версией (которая не имеет этой проблемы), и они идентичны.
- Я очистил кеш браузера.
Проблема, скорее всего, вызвана моей конфигурацией - приложение работает безупречно на моей локальной машине, но я не могу найти что-то не так. Любые идеи о том, как справиться с этим?
EDIT: только, чтобы быть полным, я использую Django 1.4
и grappelli 2.4
работает на Google Cloud SQL
По какой-то причине библиотека javascript library.js не включена. На данный момент я модифицировал base.html, чтобы включить эту библиотеку, которая сейчас решает проблему, но, очевидно, является неприятным взломом. – Roger