【问题标题】:Overriding get_urls() for a Django CMS plugin覆盖 Django CMS 插件的 get_urls()
【发布时间】:2015-09-16 09:56:29
【问题描述】:

我正在使用 Django-CMS 3.0.13 处理自定义插件:

class PromoPlugin(CMSPluginBase):

    . . .

    def get_urls(self):
        print 'here'  # <-- NEVER CALLED
        return super(CMSPluginBase, self).get_urls()

并试图覆盖get_urls(),但我的覆盖从未调用CMSPluginBase 继承自 ModelAdmin (reference)...我忽略了什么?

编辑

所以,经过一番研究,实际的问题是 PlaceholderAdminMixin 的 edit_plugin url 踩到了另一个 mixin 的模式,特别是 django-genericadmin 的模式。

我添加了一个与PromoPlugin 类中的模式完全匹配的 url 模式,但该模式可能注册得太晚而无法覆盖edit_plugin 模式。所以,看起来我将调整 django-genericadmin 的 URL。

我将此答案标记为已接受,因为它是增强插件 URL 模式的正确方法。

【问题讨论】:

标签: django django-cms


【解决方案1】:

CMSPluginBaseModelAdmin 的子类,但与cms.plugin_pool.PluginPool 挂钩,而不是管理站点。因此并非ModelAdmin 中的所有API 都被使用。

不过从 3.0 开始可以使用get_plugin_urls API。

【讨论】:

  • 感谢您的链接。我会试一试。
猜你喜欢
  • 2011-08-02
  • 1970-01-01
  • 1970-01-01
  • 2014-11-25
  • 2021-08-10
  • 2018-03-28
  • 2021-09-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多