2010-06-23 4 views
8

Я хочу экспортировать результаты, которые у меня есть, в Queryset, которые я получаю из вида поиска сена. Для этого я нашел лучший способ - сделать это асинхронно, поэтому я использую Celery и Rabbitmq для управления этой задачей, создавая файл и перебираю все результаты, а затем уведомляю пользователя по электронной почте, что файл готов для их захвата. Однако, чтобы передать Celery QuerySet, мне нужно его сериализовать.Сериализация django-haystack queryset

Есть ли быстрый способ сделать это? Или мне нужно скопировать параметры запроса и повторить поиск?

+1

Это не лучшая практика, чтобы передать объекты модели или QeurySets задачам (см http://ask.github.com/celery/userguide/ tasks.html # состояние). Но похоже, что вы можете быть здесь в ясности, пока вы не измените состояние базы данных в задаче. Что касается того, как его сериализовать, это должно работать нормально, если вы используете Task.serializer = «pickle» (по умолчанию), могут быть некоторые объекты в оцениваемом запросе, который не может быть выбран. Может быть, вы могли бы включить травы травы? – asksol

ответ

4

Вы можете сериализовать стог QuerySet в формат JSON как это:

from django.core import serializers 
serializers.serialize("json", [q.object for q in queryset]) 
+0

Удивительный ответ мужчина !!! , ")" отсутствует в конце. ;) – Kishan

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