型号:从cms.models.fields导入占位符字段
MyModel(models.Model)
title = models.CharField(max_length=255)
placeholder = PlaceholderField('my_model')
我想在一个变量中检索占位符html内容,类似于
MyModel.objects.get(id=1).placeholder.get_html_content()
如何做到这一点?
这样的东西应该可以工作!
假设您可以访问request
对象:
from django.template import RequestContext
from cms.plugin_rendering import render_placeholder
obj = MyModel.objects.get(id=1)
html = render_placeholder(obj.placeholder, RequestContext(request))
如果您不能访问request
对象,可以使用RequestFactory
模拟request
对象
from django.conf import settings
from django.contrib.auth.models import AnonymousUser
from django.test.client import RequestFactory
def get_request(language=None):
request_factory = RequestFactory()
request = request_factory.get('/')
request.session = {}
request.LANGUAGE_CODE = language or settings.LANGUAGE_CODE
# Needed for plugin rendering.
request.current_page = None
request.user = AnonymousUser()
return request