Hej, robię sobie ćwieczenia z FastApi backendowe i utknęłam na zadaniu zmapowania obiektów po wspólnych wartościach pól klasy
Mam taką klasę Car w bazie danych i odpowiednik dla zwracania -> CarMapped
class Car(Model):
id: int
producent_id: int
model_id: int
owner_id: int
engine_id: int
state_id: int
# dalej
class EngineState(BaseModel):
engine_id: int
engine_type: str # pole z klasy Engine
state_id: int
state_value: str # pole z klasy State
class CarMapped(BaseModel):
producent_id: int
model_id: int
owner_id: int
engine_states: list[EngineState]
gdy wywołuję metodę z bazy danych, to dostaję takie obiekty:
cars = db.get_cars(owner_id: 1)
# przykładowe wartości
# id: 1, producent_id: 1, model_id: 1, owner_id: 1, engine_id: 1, state_id: 1
# id: 2, producent_id: 1, model_id: 1, owner_id: 1, engine_id: 2, state_id: 4
# id: 3, producent_id: 1, model_id: 1, owner_id: 1, engine_id: 4, state_id: 3
# id: 4, producent_id: 1, model_id: 1, owner_id: 1, engine_id: 7, state_id: 9
# id: 5, producent_id: 1, model_id: 1, owner_id: 1, engine_id: 23, state_id: 2
Jak połączyć te obiekty w jeden obiekt CarMapped (dla wspólnych: producent_id = 1, model_id = 1, owner_id = 1) tak aby miały listę
Odpowiednie wartości engine_type i state_type można pobrać metodami get_type_by_engine_id(id: int), get_state_by_state_id(id: int)
Umiem to tylko częściowo zrobić pętlą for, ale i tak nie dokońca :(