Вопрос по plone, dexterity – Укажите значение по умолчанию для поля также в форме редактирования.

1

Итак, у меня есть форма (просто получаю пример изplone.directives.form):

from plone.directives import form
from zope import schema

class IMySchema(form.Schema):

    title = schema.TextLine(title=u"Title")

@form.default_value(field=IMySchema['title'])
def default_title(data):
    return data.context.suggested_title

Который отлично работает только для добавления форм.

Итак, вопрос в том, как сделать так, чтобы этот же метод использовался и в форме редактирования? Я не создаю форму редактирования самостоятельно, если это имеет отношение к данному вопросу.

Редактировать: Я забыл кое-что, что довольно актуально: значение, введенное в поле, хранится в другом месте, и это уже работает благодаря обработчику событий, поэтому мне нужно всегда иметь возможность предоставлять значение по умолчанию (текущее значение извлекается из того места, где хранится) и позволяет пользователю (системному администратору) изменять это значение, но главным образом для его поиска (т. е. какое значение имеет это поле).

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

Как вы хотите, чтобы значение по умолчанию вели себя? Когда кто-то редактирует элемент и очищает поле заголовка, он должен использовать вместо него значение по умолчанию? Martijn Pieters♦
Спасибо за вопросы, я немного улучшил вопрос, надеюсь, он объяснит ваши вопросы gforcada
Если вы не зависите от контекста формы для значения по умолчанию, рассмотрите возможность использования zope.schema 3.8.0 и аргумента defaultFactory для поля. Я не рассматриваю это как ответ, потому что это самый простой случай, а не наиболее вероятный. Если вы можете управлять классом объекта, который является контекстом формы редактирования, почему бы не сделать так, чтобы он выдавал значение по умолчанию при получении (и сохранял его или ничего при наборе)? sdupton

Ваш Ответ

0   ответов

Похожие вопросы