如何在基于类的视图中获取当前插件对象的实例

时间:2019-09-16 09:03:44

标签: python django django-models django-cms

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

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

我想要获取的属性是在运行时设置的,因此我必须获取实例。由于存在template的全局实例,因此在plugin上下文中可以到达。但是在视图上下文中,我无法获得这样的实例。

我尝试了以下方法:

  1. 在视图上下文中导入BaseMyPlugin类。失败,因为它不是实例。
  2. 覆盖render_to_response类中的get_context_data / get_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。你能帮我一下吗?

0 个答案:

没有答案