Параметры поля формы Web2py - PullRequest
3 голосов
/ 06 июля 2011

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

1 Ответ

2 голосов
/ 06 августа 2011

Вы имеете в виду некоторые поля, видимые для всех посетителей, а некоторые поля видны только при входе в систему?

Если это так, тогда создайте свою форму условно:

form_fields = [
  Field('pubfield'),
  Field('pubfield2')
]

if auth.user: # This is true if the end-user is logged in and you're using the built-in auth
  form_fields.append(Field('private_field'))

return dict(form=FORM(form_fields))

Если вы не говорите о зарегистрированных пользователях, а просто хотите, чтобы поля были видимыми, но не редактируемыми. Затем используйте writeable = False, как вы пытались, но я думаю, что вы должны либо использовать crud.create / crud.update, либо SQLFORM / SQLFORM.factory (последний не требует модели данных)

SQLFORM.factory(Field('my_readable_field', writable=False))

Если форма основана на базе данных, вы можете использовать CRUD (вам нужно изменить настройки CRUD, если вы не используете аутентификацию, чтобы формы CRUD были доступны)

crud.create(db.some_table)

или

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