Django CMS:如何获取占位符html内容



型号:从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

最新更新