我有一个CMSPlugin&请求在另一个应用程序中显示它的项目。
显然,您创建的每个插件都有一个实时和草稿版本,因此执行audio = Audio.objects.all()
会为您带来重复的实例。
您如何创建仅从公共页面返回插件对象的查询?
我的插件;
class Audio(CMSPlugin):
"""
Model for storing audio clips.
"""
caption = models.CharField(
_("Title"),
max_length=255,
blank=True
)
audio_track = models.FileField()
description = models.CharField(
_("Description"),
max_length=255,
blank=True,
null=True
)
答案 0 :(得分:2)
这样的事情怎么样:
Audio.objects.filter(placeholder__page__publisher_is_draft=False)
这假设所有Audio
个插件都属于CMS页面。 CMSPlugins不保证有与之关联的页面!除非您将page_only
选项设置为True
:
page_only = True
文档:http://django-cms.readthedocs.org/en/latest/reference/plugins.html#page-only