【问题标题】:Enum type in python eve schemapython eve模式中的枚举类型
【发布时间】:2019-06-25 17:06:45
【问题描述】:

我是 python Eve 框架的业余爱好者,但我将它用于开发目的。但是,我不知道如何在架构中使用枚举类型。我的意思是这种数据类型在 python Eve 中的语法。

那么,我该如何在 python eve 模式中表达呢?

"tts" : {"enum": ["show","hide"]},

感谢任何帮助。

【问题讨论】:

    标签: python enums database-schema eve


    【解决方案1】:

    我认为您可以在 Eve 中使用自定义数据类型功能。您可以通过简单地将_validate_type_<typename> 方法添加到您的子类来添加新的数据类型。考虑以下来自 Eve 源代码的 sn-p。

    def _validate_type_objectid(self, value):
    """ Enables validation for `objectid` schema attribute.
    
    :param value: field value.
    """
    if isinstance(value, ObjectId):
        return True
    

    此方法支持您的架构中的 MongoDB ObjectId 类型,允许这样的事情:

    'schema': {
       'owner': {
          'type': 'objectid',
          'required': True,
       },
    }
    

    【讨论】:

    • 你试过不同的枚举类型吗?如果是,您可以发布该示例吗?
    • 不,我还没试过。我刚刚在文档中阅读过它。你可以问尼古拉爵士!
    【解决方案2】:

    您正在寻找allowed 规则。

    "tts" : {"type": "string", "allowed": ["show", "hide"]}
    

    【讨论】:

    • 我在写完一个问题后很快就明白了这一点。但是后来我忘记写答案了。但感谢您确认。
    • 是的,很高兴你做到了。只是为未来的读者留下线索。
    猜你喜欢
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-14
    • 1970-01-01
    相关资源
    最近更新 更多