Я использую flask-sqlalchemy Разработка API, и я не знаю, как вернуть только значение данных типа Enum
Я решилизмените столбец db 'status' с 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)