在flask-restx/flask-restplus中的字段中允许空值

tho*_*ask 0 python flask flask-restplus

我正在使用flask-restx 来构建API。

我的api模型如下:

myModel = api.model(
    'myModel', 
    {
        'id' : fields.Integer(min=1, required=True),
        'code' : fields.String(enum=["A", "B", "C"], required=False),
    }
)
Run Code Online (Sandbox Code Playgroud)

通过这样做,代码不能为空。

但有时,代码字段为空。如果不是,则它必须是ABC值之一。

我无法添加None到枚举列表,因为它不是字符串。

如何使其可能为 null ?

Ste*_*nje 5

添加到你的脚本中

class NullableString(fields.String):
    __schema_type__ = ['string', 'null']
    __schema_example__ = 'nullable string'
Run Code Online (Sandbox Code Playgroud)

然后

myModel = api.model(
    'myModel', 
    {
        'id' : fields.Integer(min=1, required=True),
        'code' : NullableString(enum=["A", "B", "C"], required=False),
    }
)
Run Code Online (Sandbox Code Playgroud)

这应该允许您的字段为空