我的Flask应用中有模型。我从这些模型创建表,然后将数据插入到这些表中。但是,当我将这些表插入时,我想记录我要插入的内容以及要插入到哪个表中。我的BaseModel中有一个“创建”类方法,所有其他模型都继承自该方法。我想在此“创建”方法中记录继承的模型的类名。当我这样做时
cls.__class__.__name__
它给我值“ DefaultMeta”。我希望它给我型号名称,例如User。
这是我在BaseModel中的创建方法:
class BaseModel(db.Model):
__abstract__ = True
__table_args__ = {"extend_existing": True}
id = db.Column(
db.Integer,
primary_key=True
)
create_date = db.Column(
db.DateTime,
default=datetime.utcnow()
)
update_date = db.Column(
db.DateTime,
default=datetime.utcnow(),
onupdate=db.func.now()
)
@classmethod
def create(cls, **kwargs):
current_app.logger.info('Creating {} with args: {}'.format(cls.__class__.__name__, kwargs))
obj = cls(**kwargs)
db.session.add(obj)
db.session.commit()
return obj
我该如何实现?有可能吗?
答案 0 :(得分:2)
cls.__class__.__name__
是班级的班级名称。您需要班级的名称。那是cls.__name__
。