Как заменить writeonlecollection в объекте DB - «потому что writeonlicection не поддерживает неявную итерацию или прямоеPython

Программы на Python
Anonymous
Как заменить writeonlecollection в объекте DB - «потому что writeonlicection не поддерживает неявную итерацию или прямое

Сообщение Anonymous »

У меня есть объект DB «часть» с полем: < /p>

Код: Выделить всё

health_indicators: WriteOnlyMapped["HealthIndicators"] = relationship("HealthIndicators",
uselist=True, back_populates="part")
< /code>
Таким образом, по умолчанию Health_indicators никогда не заполняется, но настроены на написание, если считываться из db. < /p>
Теперь я хочу заполнить список определенным выбором. заявление. И предоставить методы в моем Partrepo, которые возвращают объекты с заполненными медицинскими людьми: < /p>
def get_part_by_id_filled_latest_hi(self, part_id: str) -> Part | None:

part = self.get_part_by_id(part_id)
if part:
part.health_indicators = self.db_session.scalars(HealthIndicatorsRepo.between_dates_stmt(part_id, None, None)).all()

return part
Проблема в том, что мне не разрешено заменить part.health_indicators :

Код: Выделить всё

E  sqlalchemy.exc.InvalidRequestError: Collection "Part.health_indicators" does not support implicit iteration; collection replacement operations can't be used
< /code>
Я понимаю значение и идею этой ошибки (что, если я замените, а затем безопасен на db:-p).
-это простой способ предоставить мою «часть» с заполненными Health_indicators? Или вы можете предложить другим способом для моего варианта использования?
part.health_indicators.add_all(self.db_session.scalars(fill_query).all())

Что не дает ошибки, а как получить доступ к моим элементам изнутри «writeoncollection» - кажется, это не итерабильный или вид списка.

Подробнее здесь: https://stackoverflow.com/questions/792 ... collection

Вернуться в «Python»