0

我正在使用嵌套字段来验证传入的 post 请求,使用@api.expectlike

payload1 = api.model('Payload', {
'prop1': fields.Nested({'prop1_inner' : fields.String(required=True)})
})

payload2 = api.model('Payload', {
'prop1': fields.Nested(api.model("metadata", {
'prop1_inner': fields.String(required=True)
}))
})
  
 #doesn't work
 @api.expect(payload1 , validate=True)
 def post(self):
 #works
 @api.expect(payload2 , validate=True)
 def post(self):

当我使用payload1like时出现异常

'dict' 对象没有属性 'name'

我希望这两种形式都能验证传入的请求。想知道没有模型包装器的嵌套字段不起作用的原因。

4

1 回答 1

0

考虑一下。嵌套模型通常不在内部定义。它们本身必须是具有离散名称的离散模型,因为 swagger 将嵌套字段记录为单独的模型,所以在这里,

payload1_addon = api.Model('PayloadAddon',{
                                'prop1_inner' :fields.String(required=True)})

payload1 = api.model('Payload', {'prop1': fields.Nested(payload1_addon)})
于 2021-05-18T05:15:59.360 回答