Django CMS: плагин для приложения без ForiengKey - PullRequest
0 голосов
/ 03 декабря 2018

Я новичок в CMS Django и пытаюсь создать плагин, который будет подключен к приложению Blog.Я хочу показать на каждой странице 5 новейших статей в блоге.Проблема заключается в том, что каждый экземпляр плагина должен быть подключен к какому-либо экземпляру из приложения блога, потому что в нашем шаблоне мы будем использовать instance плагина, например: instance.article.all() или instance.blog.article.all().

. Какой-то вариант получения экземпляровArticle в шаблон моего BlogPlugin шаблона без использования instance из BlogPlugin?

Спасибо.

1 Ответ

0 голосов
/ 04 декабря 2018

Вам не нужно подключать плагин к блогу.Вы можете просто получить объекты в методе рендеринга плагина.Метод render немного похож на get_context_data представления.В этот метод вы можете добавить то, что вам нужно для плагина, например:

class BlogPlugin(CMSPluginBase):
    ...

    def render(self, context, instance, placeholder):
        context = super(MyPlugin, self).render(context, instance, placeholder)

        # If you know that the higher the `id`, the newer the object, 
        # this gets the latest 5 by ID in reverse order
        context['articles'] = Article.objects.all().order_by('-id')[:5]

        return context
...