【问题标题】:How to inherit and modify the standard Django CMS Link plugin?如何继承和修改标准的 Django CMS Link 插件?
【发布时间】:2015-01-20 21:25:08
【问题描述】:

我试过以下代码:

cms_plugins.py:

from djangocms_link.cms_plugins import LinkPlugin
from .models import SecondaryNavigationLink

class SecondaryNavigationLinkPlugin(LinkPlugin):
    name = _("Secondary Navigation Link")
    model = SecondaryNavigationLink

    def render(self, context, instance, placeholder):
        context.update({
            'instance': instance,
            'placeholder': placeholder,
        })
        return context

plugin_pool.register_plugin(SecondaryNavigationLinkPlugin)

models.py:

from djangocms_link.models import Link

class SecondaryNavigationLink(Link):
    pass

我可以在通用部分下的 cms 控制面板上看到我的链接插件,但是当我点击保存时,我从请求中看到一个 500 间隔服务器错误,并且 Django CMS 呈现这样的插件块

Secondary Navigation Link <Empty>

我对此无能为力。

【问题讨论】:

  • 好的,我解决了这个问题,我不应该覆盖渲染方法
  • 我怎样才能结束这个问题
  • 您可以自己回答并接受答案。

标签: python django python-2.7 django-cms


【解决方案1】:

原来我犯了一个愚蠢的错误,覆盖了Link插件的默认渲染方法:

https://github.com/divio/djangocms-link/blob/master/djangocms_link/cms_plugins.py#L21

只需摆脱我的渲染功能即可解决此问题:

class SecondaryNavigationLinkPlugin(LinkPlugin):
    name = _("Secondary Navigation Link")
    model = SecondaryNavigationLink

    # No more render

【讨论】:

    猜你喜欢
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    • 2018-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-14
    相关资源
    最近更新 更多