Django CMS 用户无权添加插件
Posted
技术标签:
【中文标题】Django CMS 用户无权添加插件【英文标题】:Django CMS user can't have permissions to add plugins 【发布时间】:2017-04-24 21:38:23 【问题描述】:我有一个 Django-CMS 站点,我在其中创建了一个 Articles 模型来添加新闻、事件和其他材料。这个模型有一个内容字段,它是一个 PlaceholderField,因此用户可以将他们想要的插件添加到每篇文章中。问题是我创建了一个没有超级用户状态的用户,但给了他我创建/编辑用户时出现的所有权限。但是这个用户不能向这个模型添加插件。他可以将插件添加到 cms 页面,但不能添加到此模型。我需要为这种情况创建某种许可吗?我该怎么做?
我的模特:
class Articles(models.Model):
objects = ArticlesManager()
id = models.AutoField(db_column='ID', primary_key=True)
sites = models.ManyToManyField(Site, verbose_name=_(u'Show in Sites'), related_name='articles_to_show')
type = models.ForeignKey('Types', db_column='TYPE_ID',
related_name='type', verbose_name=_(u'Type'))
content = PlaceholderField('ipp_article_content',
related_name='IPP_ARTICLE_CONTENT')
class Meta:
app_label = 'cms_ipportalegre'
db_table = 'ipp_articles'
verbose_name = _(u'Article')
verbose_name_plural = _(u'Articles')
permissions = (
("view_articles", _(u"Can view Articles")),
)
在我的模板中:
<p>% render_placeholder object.content language placeholder_language %</p>
【问题讨论】:
【参考方案1】:我发现了问题。我在我的 admin.py 中有一个 ArticleAdmin 和 ArticleAdminForm 的配置,我在排除字段中定义了“内容”。
class ArticleAdminForm(ModelForm):
class Meta:
model = models.Articles
exclude = ["title", "description", "content" , "creation_date", "site", "slug", "counter"]
def __init__(self, *args, **kwargs):
super(ArticleAdminForm, self).__init__(*args, **kwargs)
class ArticleAdmin(PlaceholderAdminMixin, FrontendEditableAdminMixin, admin.ModelAdmin):
form = ArticleAdminForm
frontend_editable_fields = ("sites", "featured_image", "article_image", "title_pt", "title_en", "title_es", "title_fr")
当我从exclude
中删除content
时,一切都开始正常工作了。
【讨论】:
以上是关于Django CMS 用户无权添加插件的主要内容,如果未能解决你的问题,请参考以下文章
Wagtail Cms是否支持Google登录和用户登录添加会话
Django cms 文本编辑器 (CKEditor) 插件