我想创建一个Django CMS插件,主要用作TextPlugin(djangocms-text-ckeditor
)的子节点。它旨在返回指向应用程序页面的链接。
为此,我按照doc中的描述对CMSPluginBase进行了子类化。看来CMSPluginBase依赖于每个插件都有自己的模板。
我是否必须拥有template.html
文件,或者我是否可以为CMSPluginBase子类编写一个直接返回呈现的html的方法(本质上非常简单,如'<a href="/some/page">App link</a>'
)并避免调用模板要呈现?
非常感谢您的帮助!
答案 0 :(得分:0)
想出来!
似乎render_template
不一定是字符串。它也可以是django.template.Template
个实例。所以,我们走了:
from django.template import Template
class MyLinkPlugin(CMSPluginBase):
render_template = Template('<a href="{{link}}">{{anchor}}</a>')
def render(self, context, instance, placeholder):
context['link']='http://google.com'
context['anchor'] = 'Google me'
return(context)