Как можно предварительно заполнить форму Python Formish? - PullRequest
7 голосов
/ 26 апреля 2010

Как можно предварительно заполнить форму Formish ? Очевидный метод согласно документации не кажется правильным. Используя один из приведенных примеров:

import formish, schemaish
structure = schemaish.Structure()
structure.add( 'a', schemaish.String() )
structure.add( 'b', schemaish.Integer() )
schema = schemaish.Structure()
schema.add( 'myStruct', structure )
form = formish.Form(schema, 'form')

Если мы передадим это действительный объект запроса:

form.validate(request)

На выходе получается такая структура:

{'myStruct': {'a': 'value', 'b': 0 }}

Однако для предварительного заполнения формы с использованием defaults требуется следующее:

form.defaults = {'myStruct.a': 'value', 'myStruct.b': 0}

В пакете dottedish есть объект DottedDict, который может преобразовать вложенный диктат в точечный, но эта асимметрия не кажется правильной. Есть ли лучший способ сделать это?

1 Ответ

1 голос
/ 15 мая 2010

Нет, не требуется использовать пунктирный dict, вы можете легко использовать стиль дикта после проверки для предварительного заполнения формы:

form.defaults={'myStruct': {'a': None, 'b': 'default_value'}}

возможно, есть старая версия formish, попробуйте обновить библиотеки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...