查询草稿或活动对象的CMSPlugin模型

时间:2015-04-10 13:32:31

标签: django-cms

我有一个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
    )

1 个答案:

答案 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