Значения типа ENUM в SQLAlchemy с PostgreSQL — это переменная, а не значение?Python

Программы на Python
Anonymous
Значения типа ENUM в SQLAlchemy с PostgreSQL — это переменная, а не значение?

Сообщение Anonymous »

Итак, моя проблема в том, что я пытаюсь создать перечисление со значениями int, но это не сработало.
прежде всего, это код.

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

class UserRole(enum.IntEnum):
publisher = 4
editor = 3
manager = 2
admin = 1

class User(Base):
__tablename__ = "user"

id = Column(Integer, primary_key=True, index=True)
email = Column(String, unique=True, nullable=False, index=True)
username = Column(String, unique=True, nullable=False, index=True)
hashed_password = Column(String, nullable=False)
user_role = Column(Enum(UserRole), default=UserRole.reader)
теперь, когда я создаю пользователя, перейдите к user_role, я обнаружил, что это admin, а не 1
я, хотя это может быть кеш, поэтому я удалил весь кеш и воссоздал базу данных.
пока я не попытался изменить одну из переменных и не обнаружил, что значения перечисления, хранящиеся в базе данных, являются самими переменными, а не значениями.
пожалуйста, помогите мне, как я могу сохранить данные перечисления как int на базу данных.
Моя последняя попытка была

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

class UserRole(enum.IntEnum):
reader: int = 7
Pro_reader: int = 6
publisher: int = 5
editor: int = 4
small_manager: int = 3
big_manager: int = 2
admin: int = 1
и не сработало.

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