Как гарантировать, что вставки принимают только значения, определенные в Enum?Python

Программы на Python
Anonymous
Как гарантировать, что вставки принимают только значения, определенные в Enum?

Сообщение Anonymous »

Я пытаюсь создать простое приложение для записи платежей, в котором хранится сумма и тип платежа.
Для типа платежа у меня есть «наличные» и «кредит», которые определены в режиме:

Код: Выделить всё

from enum import Enum

class Mode(Enum):
cash: str
upi: str
Затем я определяю создаваемую таблицу с ее полем как:

Код: Выделить всё

from sqlalchemy import Column, Integer, Float, Enum
from utils.database import Base
from utils.paytype import Mode

class Records(Base):
__tablename__ = "records"

id = Column(Integer, primary_key=True, index=True)
amount = Column(Float, nullable=False)
payment_type = Column(Enum(Mode), nullable=False)
Когда я пытаюсь добавить запись в таблицу, я могу предоставить любую строку в качестве входных данных для pay_type, что не было идеей. Как гарантировать, что записи принимают только один из двух определенных значений?


Подробнее здесь: https://stackoverflow.com/questions/788 ... ed-in-enum

Вернуться в «Python»