Как установить значения автоформы Plone в методе обновления с помощью ignoreContext = True - PullRequest
3 голосов
/ 29 июня 2011

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

def update(self):
    super(ConfigurationForm,self).update()
    form = self.request.form
    if not form:
        #We are on a rendering process
        provider = self.getProvider()
        settings = provider.get()
        #TODO: update widget values !?

settings - это диктовка, в которой ключи равны именам полей интерфейса.

Поэтому я попробовал много способов обновлениязначения виджетов:

  • Использование преобразователя данных (слишком сложный и не знаю, единственный ли это способ
  • Обновление dict self.request.form и повторный вызов метода update
  • игра с полевыми объектами

Какой хороший способ добиться этого (поддержка всех видов полей?)

1 Ответ

4 голосов
/ 29 июня 2011

Не игнорируйте контекста.Переопределите getContent (), чтобы вместо этого вернуть dict.Диктовка будет использоваться в качестве псевдо-контекста.

...