带有枚举错误的Flask模型导致TypeError:类型'类型'的对象没有len()

时间:2018-03-29 10:23:51

标签: python enums sqlalchemy

我正在创建一个Flask模型字段,其枚举值链接到class,就像这样。

class ValueTypes(enum.Enum):
    min = 'min'
    max = 'max'
    optimum = 'opt'

class Param(db.Model):
    # ...
    type = db.Column(db.Enum(ValueTypes), default=ValueTypes.optimum)

接收错误如下:

...
  File "/app/venv/lib/python2.7/site-packages/sqlalchemy/sql/sqltypes.py", line 1316, in <genexpr>
length = max(len(x) for x in self.enums)
TypeError: object of type 'type' has no len()

我想要一个由模型图层上的枚举值过滤的字段。 怎么做得好?或者为什么会发生错误?或者我是否错过了语法中的某些内容?

1 个答案:

答案 0 :(得分:1)

class Param(db.Model):
    # ...
    type = db.Column(db.Enum("min", "max", "opt", name="ValueTypes"), default="opt")