2012-06-06 4 views
2

В прямой Django, вы можете получить доступ случайных экземпляров модели по:Вернуться Случайные товары с Django и Tastypie

randinst = MyModel.objects.order_by('?') 

Примечание: Хотя есть проблемы с производительностью этого, я испытал с SQLite бэкэнда и я получить действительно случайные результаты для до 100000 попыток. Поскольку мое приложение не требует значительных результатов, я не беспокоюсь о других бэкэндах.

То, что я хочу, чтобы выполнить это: Клиент делает запрос, /api/v1/mymodel/?limit=10, и получает случайный набор из десяти строк из MyModel через tastypie так же, как вы получите работает во фрагменте кода выше в 10 раз. Затем он делает тот же запрос и получает 10 различных (в пределах вероятности) случайных строк.

Примечание: Я пробовал запросить /api/v1/mymodel/?ordering='?' и все возможные варианты его использования бесполезны. Также бесполезно установить MyModelResource.Meta.ordering = ['?']

Есть ли способ выполнить мою цель с помощью tastypie? Существуют ли другие решения? Благодарю.

ответ

4

Ответьте на #tastypie.

Установите QuerySet модели следующим образом:

class MyModelResource(ModelResource): class Meta: queryset = MyModel.objects.all().order_by('?')

Ключевым моментом здесь является использование objects.all().order_by не только objects.order_by.

 Смежные вопросы

  • Нет связанных вопросов^_^