1

我已将我的 Django 应用程序部署到 Google App Engine。它在管理应用程序中使用 grappelli 以获得额外的效果,虽然它似乎运行良好,但我似乎无法摆脱一个巨大的绊脚石。此处提到了该问题,并在管理应用程序的列表视图中表现出来。不可能从列表中选择模型并对它们执行任何预定义的操作。

在管理应用程序的所有列表视图中,我收到一个 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>

我做过的事情:

  • 我通过将包添加到我的 Django 应用程序来部署 grappelli。
  • STATIC_ROOT在我的settings.py.
  • 我在部署前跑去manage.py collecstatic收集静态文件。所有静态文件现在都位于应用程序根目录中的静态目录中,如settings.py.
  • 我检查了生成的页面源代码,似乎所有必需的 Javascript 库都正确地包含在它们各自的静态目录中。我通过将生成的页面源与本地运行版本(没有此问题)进行比较来仔细检查,它们是相同的。
  • 我清除了浏览器缓存。

问题很可能是由我的配置引起的——因为该应用程序在我的本地机器上运行完美——但我找不到任何错误。关于如何解决这个问题的任何想法?

编辑:为了完整起见,我使用Django 1.4grappelli 2.4运行Google Cloud SQL

4

2 回答 2

1

这仍然是一个谜,除了评论中描述的方式外,我无法解决它。根据 Github 上的问题列表,对于一些没有明确解决方案的用户来说,这是一个问题。

于 2013-03-13T10:33:37.623 回答
0

通过查看这张票:https ://github.com/sehmaschine/django-grappelli/issues/214

您的问题可能可以通过更改设置中的 staticfiles_finders 的顺序来解决,如下所示:

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

我没有注意到的是它们必须按那个顺序排列。

清除缓存等后,它开始为我工作。

于 2013-08-13T22:57:20.513 回答