次のスキーマを検討してください
schema = {
"value_type":{
"type": "string", "required": True
},
"units": {
"type": "string",
"dependencies": {"value_type": ["float", "integer"]},
"required": True
}
}
フィールドの値が または のいずれかの場合にのみフィールドをunits
必須にしたい。value_type
float
integer
これが私が達成しようとする行動です
v = Validator(schema)
v.validate({"value_type": "float", "units": "mm"}) # 1.
True
v.validate({"value_type": "boolean", "units": "mm"}) # 2.
False
v.validate({"value_type": "float"}) # 3.
False
v.validate({"value_type": "boolean"}) # 4.
True
上記のスキーマは、最初の 3 つのケースに対してのみ期待される結果を返します。
units
(を省略して"required": True
)の定義を変更すると
"units": {"type": "string", "dependencies": {"value_type": ["float", "integer"]}}
次に、の検証
v.validate({"value_type": "float"}) # 3.
True
True
私が欲しいものではないリターン。
ドキュメントoneof
のルールを調べましたが、これをプロパティにのみ適用する方法が見つかりませんでした。required
True
依存関係が満たされた場合にのみ必須の値が必要です。
これを実現するには、スキーマをどのように変更すればよいですか?