2015-06-01 3 views
1

При написании плагина в документации указано, что вы должны определить класс, который наследует от CMSPluginBase, и вы можете передавать информацию в контексте. Мой вопрос: каковы параметры, которые передаются в функции render();Плагин Django CMS

def render(self, context, instance, placeholder) 

Что такое;

  • экземпляр?

  • место хранения?

ответ

3

Для начала API documentation содержит несколько советов. Кроме того, документы содержат более подробную информацию о компонентах, таких как заполнители и пользовательские плагины.

instance
Это текущий экземпляр вашего плагина. Представьте, что вы создали плагин Django CMS, который отображает отзывы на вашем сайте. Он предоставляет поля для загрузки условного изображения, имени и цитаты. У вас может быть несколько экземпляров этого плагина на каждой странице, поэтому аргумент instance содержит текущие данные.

Таким образом, если у вас есть пять экземпляров одного плагина (например, отзывы) на странице, то render() будет вызываться пять раз независимо друг от друга, а instance - это ссылка на текущий визуализированный объект.

placeholder
В шаблонах можно определить несколько заполнителей, как my_left_sidebar, the_footer, main_content и т.д. Через placeholder переменной вы можете проверить, в которой заполнителя текущий экземпляр визуализируется.

Смежные вопросы