2012-03-27 36 views
2

我試圖使用變形作爲金字塔的一部分,並沒有問題得到完全可編輯或完全只讀的形式,但我似乎無法找到創建只讀文本輸入字段的方式。下面的代碼不會做我想做的,但我認爲你應該能夠看到我想要做的事:有沒有辦法使變形/ collander表單域爲只讀/禁用?

class UserSchema(colander.MappingSchema): 
    first_name = colander.SchemaNode(colander.String()) 
    last_name = colander.SchemaNode(colander.String()) 
    username = colander.SchemaNode(colander.String()) 
    password = colander.SchemaNode(colander.String()) 
    email = colander.SchemaNode(colander.String(), validator=colander.Email()) 
    organization_name = colander.SchemaNode(colander.String(), widget=deform.widget.TextInputWidget(readonly=True)) 

回答

3

使用只讀模板:

organization_name = colander.SchemaNode(colander.String(), missing='', widget=deform.widget.TextInputWidget(template='readonly/textinput')) 

你必須定義一個missing值,否則驗證失敗。

變形版本0.9.6+:

變形以來一直更新,如預期的那樣readonly關鍵字參數應該工作。

+1

我認爲傳遞['readonly'](http://docs.pylonsproject.org/projects/deform/en/latest/api.html?highlight=readonly#module-deform.widget)參數到widget是首選。另請參閱[不驗證只讀字段](http://deformdemo.repoze.org/readonly_value_nonvalidation/) – 2016-02-21 21:11:34

相關問題