Если мой models.py имеет отношения ManyToMany между книгами и авторами, и если для определенного SampleBook я выполняю:
Sample_book.authors.add (author1)
Sample_book.authors.add (author2)
Sample_book.authors.add (author3)
, author1, author2 и author3 хранятся в books.authors.all в том порядке, в котором они были добавлены?
т.е. функция добавления () ManyToMany похожа на добавление? Если я попытаюсь извлечь значения в цикле for, будут ли они возвращены в том порядке, в котором они были первоначально добавлены?
Продолжение:
В ответе, полученном ниже, указывалось, что db / django не несут ответственности за порядок хранения объектов.
Проблема в том, что у меня проблема с вложенной сортировкой. например Я посылаю список шаблонов в шаблон, используя order_by для его сортировки. Но шаблон должен отображать все книги, а также всех авторов для каждой книги, а также отсортировать авторов.
Поскольку между книгами и авторами существует связь ManyToMany, авторы для каждой книги не обязательно хранятся в порядке (отсюда мой оригинальный вопрос). Таким образом, шаблон отображает книги в переданном порядке, и я использовал regroup в качестве хака для сортировки авторов, извлеченных по ассоциациям из каждой книги.
У кого-нибудь есть более элегантное решение?