Получать только клиентов (со всеми связанными заказами), у которых есть хотя бы один заказ с данным статусом - PullRequest
0 голосов
/ 12 марта 2020

Самый простой способ объяснить это на примере:

class OrderStatus(enum.Enum):
    NEW = "New"
    TO_BE_GENERATED = "Waiting for generation"
    COMPLETED = "Completed"
    CANCELED = "Canceled"


@dataclass
class Customer(Base):
    __tablename__ = 'customers'

    orders = db.relationship('Order', backref='Customer', lazy=True)

@dataclass
class Order(Base):
    __tablename__ = 'orders'

    customer_id = db.Column(db.Integer, db.ForeignKey('customers.id'))
    customer = db.relationship("Customer", foreign_keys=[customer_id])
    status = db.Column(db.Enum(OrderStatus))

def get_customers_with_orders(start=None, limit=None):
    return Customer.query.offset(start).limit(limit).from_self().join(Order).all(), customers.count()

Используя get_customers_with_orders () Я могу получить всех клиентов.

Как получить только клиентов (с всех связанных заказов), которые имеют хотя бы один заказ со статусом OrderStatus.COMPLETED

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...