誰かが私を助けてくれるのだろうか。私は新しいプロジェクトで変形と水切りを調べており、SchemaNode のサブクラス化に関するドキュメントに従っていました。ただし、ドキュメントには次のように記載されていますが、
サブクラスは、次のメソッドと属性を定義できます: preparer、validator、default、missing、name、title、description、widget、および after_bind。
タイトルを定義すると、うまくいかないようです。ここに私が使用しているいくつかのサンプルコードがあります:
class LocationSchemaNode(colander.SchemaNode):
schema_type = colander.Int
title = 'Location'
missing = None
validator = colander.Range(
min=1,
min_err='Please select a valid location'
)
class PersonSchema(colander.Schema):
location_id = LocationSchemaNode()
ただし、フォームがレンダリングされると、SchemaNode で定義されたタイトルに従って、フィールドのラベルは「Location」ではなく「Location Id」になります。代わりに私が書く場合:
class PersonSchema(colander.Schema):
location_id = LocationSchemaNode(title="Location")
その後、すべてが思い通りに表示されますが、ドキュメントには、これを行う必要はないと記載されているようです。そうすると、フィールドを定義し続ける必要がある場合、SchemaNode を事前に定義するという点が無効になります。
私は何かを見逃しているのでしょうか、それともすべきではないことをしているのですか (私はそうなるとは思いません)。どんな助けでも大歓迎です。
キース