【发布时间】:2019-05-09 17:00:36
【问题描述】:
我正在使用 flask-sqlalchemy api 开发,我不知道如何只返回 Enum 类型数据的值
我决定将 db 列“状态”从 String 更改为 Enum,但不更改前端代码,因此我只需要返回枚举列的值。我已经尝试过Message.status.value,但它不起作用(AttributeError: Neither 'InstrumentedAttribute' object nor 'Comparator' object associated with Message.status has an attribute 'value')
消息模型:
class Message(SurrogatePK, Model):
__tablename__ = 'message'
title = Column(db.String(30))
url = Column(db.String(180))
body = Column(db.String(300))
category = Column(db.String(20))
status = Column(db.Enum(MessageStatusEnum))
枚举类:
@unique
class MessageStatusEnum(Enum):
WORKING = "working on it, please wait..."
COMPLETE = "complete sending message"
查看:
@blueprint.route('', methods=['GET'])
def get_msg_list():
…
messages = UserMessage.query.join(Message).filter(…).with_entities(
Message.id, Message.title, … Message.status
).paginate(page=page_index, per_page=page_size, error_out=False)
data = {'pages': messages.pages, 'items': messages.items}
return request_handler(SUCCESS, data=data)
【问题讨论】:
标签: python enums flask-sqlalchemy