Я хотел бы создать объект dict или dict-like, основанный на запросе orj django orm с использованием предварительно загруженных объектов. Из-за количества задействованных объектов я хотел бы как можно больше сделать это в базе данных.Django: в том числе предварительно выбранные объекты в значениях() dict
Чтобы использовать знакомый пример структуру, если у меня есть Автор и книга с обычным ForeignKey из книги автора, и у меня также есть издание с ForeignKey обратно в книгу, я хотел бы сделать что-то вроде
Author.objects.prefetch_related(Prefetch('book_set', queryset=Book.objects.filter(cycle__id=3).select_related('edition__binding'), to_attr="bindings")) # clearly this is wrong
и в конечном итоге вызвать .values()
или что-то в этом роде, чтобы получить диктофонный результат, состоящий из строк авторов, который должен содержать запись «привязки», которая содержит список привязок, которые были опубликованы каждым автором. цель будет состоять в том, чтобы привязки были списком, разделенным точкой с запятой, т.е. [{"Author": "Daniel Dennett", "bindings": "paper; hardback; cloth"}, {"Author": "Jemiah Jefferson", "bindings": "paper; zine"}]
До сих пор мне удалось получить поле, подобное «привязкам», прикрепленное к запросу, используя prefetch_related и select_related, как указано выше, но это поле не включено в результат вызова .values()
. Это означает, что я должен петлю над объектами, которые просто занимают слишком много времени для моих целей (есть много объектов, и время ожидания запроса)