Đây là một giải pháp thanh lịch được mô tả trong Tài liệu SQLAlchemy , thực hiện chính xác những gì bạn muốn:
from sqlalchemy.orm import synonym
class User():
__tablename__ = 'Users'
username = Column(STRING, primary_key=True)
id = synonym('username')
Nó hoạt động như mong đợi:
>>> john = session.query(User).filter_by(id='John Doe').first()
>>> print([john.id, john.username])
['John Doe', 'John Doe']
>>> john.id is john.username
True
Nhân tiện, User
lớp này phải là một lớp con của SQLAlchemy declarative_base()
lớp:
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class User(Base):
...
Truy cập tài liệu để tham khảo thêm.