10


如果有人知道如何让 django-cms 与 grappelli 一起玩,请提供一些提示

4

3 回答 3

5

好吧,我刚刚经历了一场相当史诗般的冒险,其中的故事可能对你有所帮助。上述冒险的终点是让 django-cms 2.1.3 与django-filebrowser-no-grappelli 一起工作. 虽然这听起来可能与您想要的相反,但我最终还是因为我真正想要的是让 django-cms 与文件浏览器一起工作。没有 grappelli 虽然标准的 django-filebrowser 不能按预期工作。但是使用 grappelli django-cms 不能按预期工作。引用莎士比亚的话,这就是问题所在。让 django-cms 与 filebrowser 一起工作相对简单,除了当尝试使用 uploadify(文件浏览器附带)上传文件时,在文件对话框中选择文件后,什么也没发生。最终我发现这是因为 jquery 库被加载了两次:一次是由 filebrowser 用于 uploadify,一次是由 django-cms。因此,通过注释掉此文件中的第二行:

您的站点包 dir/cms/templates/cms/toolbar/toolbar.html

加载 jquery.min.js,uploadify 按预期工作。Soooo ...如果您只想让 django-cms 与 grappelli 一起使用,以便您可以使用文件浏览器,那么上述内容可能会有所帮助。是我的设置文件供参考。

于 2011-04-10T23:05:49.370 回答
2

我的解决方案是实现 2 个子域,“www”和“cms”,在每个子域中,Django 站点的一个单独实例使用不同的 STATIC_ROOT 和修改后的 INSTALLED_APPS 运行。grappelli 在“www”子域中运行。它不在“cms”子域中运行,因此您可以在那里使用 django-cms。

  • 设置子域:cms.example.com

  • 修改您的网络服务器以提供此子域。使用与主 django 站点相同的设置,但指向不同的脚本处理程序。例如,如果使用 wsgi 指示服务器运行wsgi_cms.py

  • cp wsgi.py wsgi_cms.py. 编辑wsgi_cms.py和更改行

    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings_cms")

  • settings_cms.py

from settings import *

INSTALLED_APPS.remove('grappelli.dashboard')
INSTALLED_APPS.remove('grappelli')
STATIC_ROOT = os.path.join('/what/ever/static_cms/')
STATIC_URL = '/static_cms/'
ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/`
  • modify settings.pyINSTALLED_APPS从元组更改为列表

  • 重启网络服务器

  • ./manage.py collectstatic --settings=myproject.settings_cms

  • 您的常规站点照常继续。要编辑禁用 grappelli 的 django-cms 页面,请访问http://cms.example.com/admin/cms/page/

于 2012-10-15T17:22:52.680 回答
0

我曾经在 github 上制作了一个支持 grappelli 的 django-cms fork,它有点过时了,但可能会帮助你入门或可能你想贡献。

于 2011-04-09T14:39:23.447 回答