Flask-SQLALchemy我有一个带列的模型:
class MyModel(db.Model):
def my_method1(self, arg1):
pass
a = Column(String(), primary_key=True)
现在我有一个函数接受Columns作为参数从中检索一些信息:
def get_column_info(column):
if column.primary_key:
return True
else:
return False
请注意,这只是一个例子,get_column_info比现实中的更多。
现在我希望能够访问get_column_info函数中的原始模型。那是我希望能够调用my_method1() 来自get_column_info。
有没有办法可以从列实例中检索原始模型?
答案 0 :(得分:2)
没有适当的开箱即用方法。列对象具有table
属性,该属性返回模型的__table__
属性,但您无法从中获取实际模型。但是(正如answer建议的那样),您可以在sqlalchemy_utils
插件中使用get_class_by_table方法:
from sqlalchemy_utils.functions import get_class_by_table
def get_model(column):
return get_class_by_table(db.Model, column.__table__)