1

誰かが私を助けてくれるのだろうか。私は新しいプロジェクトで変形と水切りを調べており、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 を事前に定義するという点が無効になります。

私は何かを見逃しているのでしょうか、それともすべきではないことをしているのですか (私はそうなるとは思いません)。どんな助けでも大歓迎です。

キース

4

1 に答える 1