如何在 SQL Alchemy 中访问/覆盖父属性的默认值?



我有以下类:Item, StoneSword, IronSword, Apple, SteakItem 是父类,剑和食物继承 Item 类。我想为每个类提供一堆不同的函数和描述。 我完全理解函数方面的事情,但我正在努力弄清楚如何使用子类覆盖默认描述。

我目前正在将单表继承与SQLAlchemy一起使用。

感谢迈克·拜耳帮助我弄清楚如何覆盖__init__()以满足我的需求。如果有人能找到一个更优雅的解决方案,我会很乐意接受这个答案。

class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String, default="User")
fullname = Column(String)
email = Column(String)
type = Column(String)
__mapper_args__ = {
'polymorphic_on': type,
'polymorphic_identity': 'user'
}
def __init__(self, **kwargs):
super().__init__(**kwargs)
def __repr__(self):
return f"<User(id={self.id}, name='{self.name}', fullname='{self.fullname}', email='{self.email}')>"
def is_admin(self):
print(f"I, {self.name}, am NOT an admin")

class Admin(User):
def __init__(self, **kwargs):
kwargs.setdefault("name", "Admin")
super().__init__(**kwargs)
__mapper_args__ = {
'polymorphic_identity': 'admin'
}

最新更新