/ / Django CMSカスタムプラグインエラー - django、django-models、django-cms

Django CMSのカスタムプラグインエラー - django、django-models、django-cms

ckeditorを使用してカスタムプラグインを作成するtryongですが、このプラグインをcmsページに追加すると、次のエラーが表示されます。

"value errorCannot" u "" "を割り当てることはできません:" Description.description "は" Description "インスタンスでなければなりません:"

以下は私のmodels.pyとcms_plugin.pyファイルです。ここでの問題は何ですか?

models.py:

from cms.models import CMSPlugin
from django.db import models
from ckeditor.fields import RichTextField
from django.utils.translation import ugettext_lazy as _
class Description(CMSPlugin):
description=RichTextField(_("Description"),)

cms_plugins.py:

from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool

from apps.cmsplugins.models import *

class DescriptionPlugin(CMSPluginBase):
model=Description
name=("Description")
render_template="cms/plugins/description.html"

def render(self,context,instance,placeholder):
print "contexttttttttttttttttttttttttttt"
context.update({
"instance": instance.description,
"object":instance,
"placeholder": placeholder,
})
return context

plugin_pool.register_plugin(DescriptionPlugin)

回答:

回答№1は2

私は同じ問題を抱えていましたが、今私はそれをうまく解決しました ちょうどDjango-CMSでRichTextBoxを実装する簡単なステップに焦点を当てています(好きなエディタ)ckeditor:

models.py

from djangocms_text_ckeditor.models import AbstractText
class TipSlide(AbstractText):
pass

cms_plugins.py

from djangocms_text_ckeditor.cms_plugins import TextPlugin
from models import SlideModel, TipSlide
class TipSlidePlugin(TextPlugin):
name = u"Tip Slide Ads"
model = TipSlide
render_template = "slide/tipslide.html"

plugin_pool.register_plugin(TipSlidePlugin)

tipslide.html

<div>
<div class="container">
{{ body|safe }}<!-- The simple plugin -->
</div>
</div>

結果は次のとおりです。 ここに画像の説明を入力


回答№2の場合は0

私はコンテキスト内でDescriptionインスタンスを渡さないため、これを行う必要があると思います instance.descriptoninstance

def render(self,context,instance,placeholder):
print "contexttttttttttttttttttttttttttt"
context.update({
"instance": instance,
"object":instance,
"placeholder": placeholder,
})
return context

回答№3の場合は0

Djangoがサブクラス化されたモデルに使用する暗黙的な一対一の関係のため、モデルフィールドの名前を、インストールされているプラ​​グインと同じ名前にすることはできません。

「3.5。設定の保存」の警告終了を参照してください。

http://docs.django-cms.org/en/3.0.1/extending_cms/custom_plugins.html#storing-configuration