Внешний интерфейс (в данном случае TinyMCE) не несет ответственности за значение по умолчанию, это форма внизу.
Plone 5 использует типы ловкости с формами z3c.
EDIT: Это как ваш делать это старый школьный путь - я имею в виду директивы Plone способ - SRY для вас в заблуждение. Я все еще использую plone.directives
, который поддерживает этот адаптер по умолчанию.
Тип контента по умолчанию Document
из plone.app.contenttypes использует plone.supermodel. Это имеет другую концепцию.
Если вы по-прежнему готовы создать свое собственное Richtext поведения, вы можете следовать этим инструкциям: http://docs.plone.org/external/plone.app.dexterity/docs/advanced/defaults.html
В вашем случае:
def richtext_default_value(**kwargs):
return RichTextValue('<p>Some text</p>')
@provider(IFormFieldProvider)
class IRichText(model.Schema):
text = RichTextField(
title=_(u'Text'),
description=u"",
required=False,
defaultFactory=richtext_default_value,
)
model.primary('text')
Вы можете добавить defaultFactory
в текстовом поле.
Если вы взломаете эти линии на яйце, это сработает.
Вот некоторые сведения о настройке значения по умолчанию программно:
Так что в вашем случае это может выглядеть примерно так:
from plone.directives.form import default_value
from plone.app.contenttypes.behaviors.richtext import IRichText
from plone.app.textfield.value import RichTextValue
@default_value(field = IRichText['text'])
def richtext_default_value(data):
return RichTextValue('<p>Some text</p>')
Вы можете продлить DEFAULT_VALUE декоратор по context
параметру, чтобы быть более точными: @default_value(field = IRichText['text'], context=my.package.content.interfaces.IMyType)
, но так как у нас есть понятие поведения он может быть лучше реализовать свое собственное Richtext поведения со значением по умолчанию:
- Создание поведения ->http://docs.plone.org/external/plone.app.dexterity/docs/behaviors/creating-and-registering-behaviors.html И поведение богатого текста по умолчанию в качестве шаблона для вашего собственного ->https://github.com/plone/plone.app.contenttypes/blob/1.2.16/plone/app/contenttypes/behaviors/richtext.py
- Удалите'plone.app.contenttypes.behaviors.richtext.IRichText` Поведение от вашего типа контента (Документ) через ZMI (portal_types -> Document)
- Добавьте свое собственное поведение Richtext, это может быть что-то вроде
my.package.behaviors.richtext.IRichtextWithDefaultValue
.
Благодарим за полезное предложение. Я хотел протестировать ваше решение, вставив его в мой «richtext.py» в моей папке с поведением. Это, похоже, не вступает в силу. Но я не уверен, что я все время в правильной папке. Это '.egg' папка в' buildout-cache'. Неужели я ошибаюсь? – Waynebird
@Waynebir: можете ли вы опубликовать свой код в Интернете (например, github repo)? Кроме того, я предлагаю вам пройти обучение на http://training.plone.org/5, чтобы вы могли понять, где что. –
Я обновил свой ответ с некоторой информацией о plone.supermodel и другим способом реализации значения по умолчанию для текстового поля. – Mathias