Web2Py如何启用字段?

2024-10-01 00:28:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个从SQLFORM方法构建的表单

flow_step_forms[step.name] = SQLFORM(db.approval_flows_progress_steps,
                                        record=thisstep.id if thisstep is not None else None,
                                        readonly=not __userCanPerformStep(step) or flow_completed)

审批流程和进度步骤的db如下

db.define_table('approval_flows_progress_steps', 
    Field('flow_progress', 'reference approval_flows_progress'),
    Field('flow_step', 'reference approval_flows_steps'),
    Field('completed', 'boolean'),
    Field('completed_on', 'datetime'),
    Field('completed_by', 'reference auth_user'),
    Field('notes', 'text', writable = True), 
    auth.signature
    )

字段注释将呈现为文本框。你知道吗

分配SQLFORM后,有以下代码:

if __userCanPerformStep(step) and not flow_completed:
   flow_step_forms[step.name].element('textarea')['_rows'] = 5

我想我可以像引用here一样引用db的属性,但是我得到了以下错误: 'NoneType'对象没有属性'writeable'

问:如何使文本框有条件地为某些用户启用??你知道吗


Tags: namefielddbstepnotformsstepsflow
1条回答
网友
1楼 · 发布于 2024-10-01 00:28:57

我不知道你为什么得到一个非类型。但要使textarea只读,可以执行以下操作:

if __userCanPerformStep(step) and not flow_completed:
    flow_step_forms[step.name].element('textarea')['_readonly'] = True
else:
    flow_step_forms[step.name].element('textarea')['_readonly'] = False

如果非类型问题仅在用户未经授权时发生。你可以试着把它抓住。除NoneType外的语句:\u readonly=True。你知道吗

相关问题 更多 >