web2py: пользовательский виджет crud формы условно показать / скрыть - PullRequest
1 голос
/ 21 февраля 2012

Я использую пользовательский виджет в моей форме:

{{=form.custom.begin}}
{{if condition:}}
    {{=form.custom.widget.field1}}
{{pass}}
{{=form.custom.submit}}
{{=form.custom.end}}

field1 имеет отношение к таблице auth_user. В моем контроллере у меня есть:

form.custom.widget['field1'] = dropdown

if not condition:
    db.admission.field1.readable = db.admission.field1.writable = False
    db.admission.field1.default = auth.user.id

Я хочу, чтобы виджет отображался только при выполнении условия. Если условие не соответствует действительности, я хочу, чтобы field1 по умолчанию использовалось для текущего вошедшего в систему пользователя. Но когда условие не выполняется, я получаю сообщение об ошибке:

field1 error: value not in database

Что я делаю не так?

1 Ответ

2 голосов
/ 21 февраля 2012

Установите атрибуты readable и writable перед созданием формы - в этом случае field1 будет просто исключен из формы автоматически, и вам не придется возиться с созданием пользовательской формы и явно включая / исключая его.

...