0

뉴스, 이벤트 및 기타 자료를 추가하는 기사 모델을 만든 Django-CMS 사이트가 있습니다. 이 모델에는 사용자가 원하는 플러그인을 각 기사에 추가 할 수 있도록 PlaceholderField 인 컨텐츠 필드가 있습니다. 문제는 수퍼 유저 상태가 아닌 사용자를 만들었지 만 사용자를 만들거나 편집 할 때 나타나는 모든 권한을 부여한다는 것입니다. 그러나이 사용자는이 모델에 플러그인을 추가 할 수 없습니다. Cms 페이지에는 플러그인을 추가 할 수 있지만이 모델에는 플러그인을 추가 할 수 없습니다. 이 사건에 대해 허가를 받아야합니까? 어떻게해야합니까?Django 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> 

답변

0

가 나는 문제를 발견했다. 나는 내 admin.py에서 ArticleAdmin 및 ArticleAdminForm에 대한 구성을 사용하여 제외 필드에 "content"를 정의했습니다. 나는 exclude 모두에서 content을 제거

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") 

잘 작동하기 시작했다.