Django Query вызывается каждый раз, когда вызывается приписанная ему переменная [дубликат].
У меня такой код:
players = room.player_set.all().order_by('?') # mix the players
'order_by' - это получение случайного порядка элементов, что необходимо для данного случая и не дорого для базы данных, так как в player_set не более 3 элементов.
При каждом обращении к переменной 'players' выполняется запрос... то есть при каждом обращении к переменной (например, в print) изменяется и значение 'players'...
Я пробовал deepcopy, но безуспешно.
EDIT: SOLUTION
По-видимому, поскольку содержимое запроса может меняться, запрос отзывается, как я и предполагал: объяснение здесь Django : random ordering(order_by('?')) делает дополнительный запрос
Этот новый код работает...
players = list(room.player_set.all())
random.shuffle(players) # mix the players
Странно, что запрос вызывается каждый раз... Мне нужно то, что есть в БД в это время, а не то, что есть, когда я использую переменную...