【发布时间】:2015-01-07 06:40:46
【问题描述】:
我在现有的 Django 1.7 / Python 2.7 项目之上安装了 django-cms 3.0.6(截至今天的最新版本),并使用 sqlite3 作为数据库。
创建了一个简单的模板和占位符后,我在尝试使用前端内容编辑器(例如“通用/图片”插件)添加插件时出现错误。这是我的模板文件:
{% extends "base.html" %}
{% load cms_tags %}
{% block content %}
{% placeholder template1_content %}
{% endblock %}
即使我以超级用户身份登录,当我尝试添加插件时,也会出现一个弹出窗口,提示“您没有添加插件的权限”。
除了无法添加插件之外,django-cms 界面的其他一切似乎都运行良好 - 我可以查看管理、创建页面、在实时和草稿之间切换等。
我查看了 django-cms 代码,似乎错误来自 cms.admin.pageadmin.PageAdmin 类中的 publisher_is_draft 检查:
def has_add_plugin_permissions(self, request, placeholder, plugin_type):
...
...
if page and not page.publisher_is_draft:
return False
return True
基本上,django-cms 似乎并不认为页面处于草稿模式,即使我已经根据前端进入了“草稿模式”(即:将“实时”模式图标切换为“草稿”)。上述函数中的其他检查通过的事实证实了该错误不是用户权限问题(实际上,正如我上面提到的,错误发生在超级用户身上)而是与页面状态有关。
这只是 django-cms 3.0.6 与 Django 1.7 集成的问题,还是我遗漏了一些明显的东西?有任何想法吗?
【问题讨论】:
-
你也是员工吗? (is_staff)
-
laffuste:是的,我很活跃,员工和超级用户。
-
我刚刚遇到了类似的情况,它与任何中间件的复制都无关。就我而言,我使用的是一个 apphooked 模型。该模型扩展了一个 CMS 页面,该页面本身包含一个占位符。然后,这个占位符会出现在我的应用程序的模板中,但由于它连接到 CMS 页面而不是应用程序,因此我无权执行任何操作。
标签: python django content-management-system django-cms