2017-02-11 28 views
0

我有這種形式,但未通過SQLFORM方法建立,Web2Py - 如何使字段啓用?

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) 

分貝爲approval_flows_progress_steps如下

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 

我想我可以參考DB的性能像他們這樣做here,但我得到了以下錯誤: 「NoneType」對象沒有屬性'可寫'

問:如何使某些用戶有條件啓用文本框?

回答

0

我不確定你爲什麼得到一個NoneType。但是,爲了使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問題只發生。你可以用Try/Except塊來捕捉它。說除了NoneType:_readonly = True。

相關問題