型号: 从cms.models.fields导入PlaceholderField
MyModel(models.Model)
title = models.CharField(max_length=255)
placeholder = PlaceholderField('my_model')
我想在变量中检索占位符html内容,类似于:
MyModel.objects.get(id=1).placeholder.get_html_content()
怎么做?
答案 0 :(得分:2)
这样的事情应该有效!
鉴于您可以访问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