Передача ограниченного набора запросов в related_to () в django-tagging - PullRequest
1 голос
/ 22 ноября 2011

Я хочу использовать функцию related_to() в django-tagging, и я передаю набор запросов, который выглядит следующим образом:

Chapter.objects.all().order_by('?')[:5]  #the important thing here is the "[:5]"

Моя проблема в том, что эта функция, очевидно, использует функцию in_bunk(), а выCannot use 'limit' or 'offset' with in_bulk

Как я могу ограничить свой набор запросов только передачей 5 объектов и одновременно использовать in_bunk?

Я знаю, что related_to () позволяет передавать переменную num(это количество объектов, которое он должен вернуть), но я не хочу, чтобы он выводил один и тот же набор запросов каждый раз.Поэтому мне пришла в голову идея упорядочить его случайным образом и ограничить его до того, как будет передано функции.Но, как вы можете видеть: ограниченные наборы запросов и bunk_it не идут рука об руку.

1 Ответ

0 голосов
/ 23 ноября 2011

Я нашел решение, хотя оно было не лучшим и хотя оно обрабатывает ненужные данные.Я просто перебираю все экземпляры модели, связанные с текущим экземпляром, а затем сортирую случайным образом и срезаю потом:

related_objects = instance.related_to(Model)        # all related objects are found
related_objects = random.sample(related_objects,5)  # .. and afterwards sorted randomly and sliced
...