2012-03-27 28 views
2

私はピラミッドの一部として変形を使用しようとしており、完全に編集可能または完全に読み取り専用のフォームを取得するのに問題はありませんが、読み込み専用のテキスト入力フィールドを作成する方法を見つけることはできません。次のコードは、私がやりたいことはありませんが、私はあなたが私がやろうとしているものを見ることができるはずだと思う:変形/折りたたみフォームフィールドを読み取り専用/無効にする方法はありますか?

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')) 

あなたが定義する必要がありますa missingの値でなければ、検証は失敗します。

デフォームのバージョン0.9.6+:

デフォームは、以降に更新されており、期待通りreadonlyキーワード引数は動作するはずです。

+1

私は、[readonly](http://docs.pylonsproject.org/projects/deform/en/latest/api.html?highlight=readonly#module-deform.widget)paramをウィジェットに渡すことをお勧めします。 [読み取り専用フィールドを検証しない](http://deformdemo.repoze.org/readonly_value_nonvalidation/)も参照してください。 –

関連する問題