2016-03-16 3 views
0

Я пытаюсь добавить плагин в placeholder страницы, когда я сохраняю модель. Но я не знаю, как передать параметр «данные» в функцию add_plugin() API.Как добавить плагин с данными на страницу с помощью add_plugin (API)?

Это, как я звоню функцию

page = create_page(self.title, 'page.html', 'es', parent=query_pages[0]) 
placeholder = page.placeholders.get(slot='News Header') 
add_plugin(placeholder, 'ArticlePluginPublisher', 'es', **query_art[0].article) 

И когда я называю add_plugin появляется следующей ошибке

add_plugin() аргумент после ** должен быть отображением, не статья

ответ

0

Вы проверили docs? **query_art[0].article не соответствует ожидаемым аргументам, так как это экземпляр;

  • заполнителя (cms.models.placeholdermodel.Placeholder экземпляр) - Заполнитель добавить плагин
  • plugin_type (строка или cms.plugin_base.CMSPluginBase подкласс должен быть корректным плагин) - Какой типа плагин для добавления
  • языка (строка) - язык коды для этого плагина, должен быть в ЯЗЫКАХ
  • позиции (строка) - положение положения, чтобы добавить этот плагин заполнитель должен быть действительным Джанго-mptt
  • целевых - Родительский плагин. Должно быть экземпляр плагин
  • данные (kwargs) - данные для экземпляра типа плагин

данных, как ожидается, будет что-то вроде словаря, или что-то, что поддерживает ** распаковку синтаксис;

add_plugin(placeholder, 'ArticlePluginPublisher', 'es', **{'article': query_art[0].article}) 

Проверьте этот пример данных или kwargs в вызове функции;

https://stackoverflow.com/a/1769475/1199464