4

Colanderを使用して、Pyramid Web サーバーの要求パラメーターを検証しています。例えば:

class MySchema(colander.MappingSchema):                                         
    first_name = colander.SchemaNode(colander.String())                               
    last_name = colander.SchemaNode(colander.String())                              

ここで、first_namelast_nameは必須パラメータです。私が使用するmissing=''と、これはオプションになりますが、ユーザーが空の文字列を送信した場合、実際には役に立たない空の文字列として逆シリアル化に追加されます。

私が考えることができる最善の方法は、後でmissing=None確認することです。None

パラメータを本当にオプションとしてマークする方法はありますか? つまり、リクエストに含まれていない場合、逆シリアル化された結果にも含まれるべきではありません。

4

1 に答える 1

4

を探していると思いますmissing=colander.dropドキュメント
から:

colander.drop - 逆シリアル化中に欠落している場合にスキーマから削除される値を表します。欠落している SchemaNode のキーワード引数に値として渡されます。

于 2015-09-22T12:51:48.763 に答える