2013-01-08 2 views
1

Я развернул приложение 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

+1

По какой-то причине библиотека javascript library.js не включена. На данный момент я модифицировал base.html, чтобы включить эту библиотеку, которая сейчас решает проблему, но, очевидно, является неприятным взломом. – Roger

ответ

1

Это остается загадкой, и я не смог решить эту проблему, но для способа, описанного в комментарии. Согласно списку проблем в Github, это было проблемой для нескольких пользователей без четкого решения.

0

Глядя на этот билет: https://github.com/sehmaschine/django-grappelli/issues/214

Ваша проблема может быть поправимо, изменив порядок staticfiles_finders в настройках следующим образом:

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
    'django.contrib.staticfiles.finders.FileSystemFinder', 
) 

Что-то я не заметил, что они должны были быть в этом порядке.

После очистки кеша и т. Д. Он начал работать для меня.

+0

Спасибо. С тех пор я заменил Граппелли Джанго Коутом. – Roger