9

単純な問題があり、それを処理する最善の方法がわかりません。次のように定義されたスキーマがあります。

class MySchema(Schema):
    title = fields.String(required=True)
    imageUrl = fields.Url()

imageUrlはオプションのフィールドで、None/null の場合もあります。これが発生した場合は問題ありません。有効な URL である必要はありません。しかし、私がするとき:

my_schema.load(request.get_json())

PUT された着信データでは、url フィールドにエラーが記録されます。Field may not be null.

load の呼び出しで使用するとうまくいくと思いpartial=Trueましたが、うまくいきません。これは部分的ではなく、完全なオブジェクトであるため、私もそれが好きではありませんでした.DBでフィールドの一部がnull可能になっているだけです。

imageUrl が null でない場合はマシュマロを検証し、null の場合は無視するにはどうすればよいですか?

4

2 に答える 2

21

私は今これを理解しました。cdonts の回答は近いものでしたが、うまくいきませんでした。ドキュメントを注意深く読み直しました。シリアル化default中に欠落している値のデフォルト値を提供するために使用されます。

ただし、逆シリアル化と検証時に問題が発生しました。そのためのパラメーターもあります。

allow_noneとの組み合わせはmissing私の状況で役に立ち、問題を解決しました。

于 2016-01-10T03:22:25.893 に答える