首页 > 解决方案 > 如何在基于类的视图中获取当前插件对象的实例

问题描述

我正在为 django-cms 开发一个插件。

现在,我有一个类BaseMyPlugin扩展CMSPlugin类,我需要base_attr在基于类的详细视图 ( MyDetailView) 上下文中从该类获取一个属性。我应该为我的视图导入(对于模块)或覆盖(对于函数)什么?

我想获取的属性是在运行时设置的,所以我必须获取实例。它在template上下文中是可访问的,因为存在plugin. 但是在视图上下文中,我无法获得这样的实例。

我尝试了以下方法:

  1. BaseMyPlugin在视图上下文中导入类。失败,因为它不是实例。
  2. 覆盖render_to_response//类get_context_dataget_object的方法MyDetailView。失败,因为这些方法的参数不包含该base_attr属性。

我的观点的代码:

class MyDetailView(DetailView):
    ```
    I want to get the BaseMyPlugin.base_attr in this view
    ```
    view_attr='to be set accouding to BaseMyPlugin.base_attr'

我的CMSPlugin班级代码:

class BaseMyPlugin(CMSPlugin):
    # target attribute
    base_attr='some value set in runtime'

我需要在运行时base_attr设置无论如何。view_attr你能帮我吗?

标签: pythondjangodjango-modelsdjango-cms

解决方案


推荐阅读