У меня есть таблица
class Order(Base):
__tablename__ = "orders"
id = sqlalchemy.Column(sqlalchemy.Integer, primary_key=True)
uuid = sqlalchemy.Column(UUID(as_uuid=True), default=uuid.uuid4, unique=True)
type = sqlalchemy.Column(sqlalchemy.String)
status = sqlalchemy.Column(sqlalchemy.String)
cluster_uuid = sqlalchemy.Column(UUID(as_uuid=False))
params = sqlalchemy.Column(sqlalchemy_jsonfield.JSONField(enforce_string=False, enforce_unicode=False), default="{}")
Также то, через что я делаю запросы
db = SessionLocal()
Ко мне приходит некоторый словарь (d1) со значениями полей и некоторый словарь (d2) со значениями полей в поле params
Как написать универсальный запрос поиска по данным значениям. Например:
d1 = {'status': 'ready', 'cluster_uuid': 'xxx'}
d2 = {"first_atr': 'my_atr', "second_atr': 'my_atr1', }
Тут надо найти все заказы в статусе 'ready' и кластером 'xxx' и у которого в поле params в котором лежит json поле first_atr равно my_atr и поле second_atr равно my_atr1.
Заранее я не знаю что придет в этих словарях. Как написать, чтобы поиск был одним запросом?