Перемещение полей между наборами полей на Ловкость

В Архетипах, чтобы переместить поле из набора полей (или схем) в другое, мы можем сделать следующее:

schema['creators'].schemata = 'default'

Однако я не достигаю того же самого, используя Ловкость. Я пытался использовать подсказки формы. Пример:

form.fieldset('default',
    fields=['creators']
 )

Я заметил, что это не работает, потому что поле "создатели" в настоящее время неизвестно. (Поведение собственника еще не оценивалось).

Тем не менее, с помощью подсказок формы я могу перейти от "по умолчанию" к другому (например, "владение").

myfile = NamedFile(title=_(u"A file"))
form.fieldset('ownership', fields=['myfile'])

Как я могу это сделать? Написание моего собственного поведения?

Спасибо!

1 ответ

Решение

Скорее всего, вам нужно определить поле, которое вы хотите назначить на интерфейсе под вашим контролем. Хотя это кажется дублирующим, это хорошая идея для целей, чтобы быть полным и явным. Вы также можете:

(1) Объявите поле "создатели" в интерфейсе вашего типа контента (вероятно, рекомендуемое решение) или...

(2) Используйте свое собственное поведение, как описано здесь (и добавьте это поведение к FTI типа в portal_types и соответствующем установочном XML): http://docs.plone.org/external/plone.app.dexterity/docs/behaviors/creating-and-registering-behaviors.html

Первое решение должно быть самым простым. Любые поля, которые вы хотите контролировать расположение или порядок набора полей, скорее всего, должны быть определены вашими интерфейсами.

Другие вопросы по тегам