1
比方說,我有SQLAlchemy ORM模型實例model
和它的屬性名稱attr_name
。SQLAlchemy模型屬性操作和數據庫訪問
有沒有辦法確定getattr(model, attr_name)
是否會查詢數據庫?我的意思是我需要一個返回True
或False
的函數getattr_does_emit_sql(model, attr_name)
。
比方說,我有SQLAlchemy ORM模型實例model
和它的屬性名稱attr_name
。SQLAlchemy模型屬性操作和數據庫訪問
有沒有辦法確定getattr(model, attr_name)
是否會查詢數據庫?我的意思是我需要一個返回True
或False
的函數getattr_does_emit_sql(model, attr_name)
。
解決了它。功能是
from sqlalchemy.orm.attributes import QueryableAttribute
def getattr_does_emit_sql(model, attr_name):
return (attr_name not in model.__dict__
and hasattr(type(model), attr_name
and isinstance(getattr(type(model), attr_name), QueryableAttribute)
)
嗯。你問是否可以通過編程方式,運行時或手動方式(通過調試和檢查模型對象,日誌記錄等)來確定它嗎? –
抱歉含糊不清 - 問題已更新。 –