2010-06-23 19 views
8

Quiero exportar los resultados que tengo en un Queryset que obtengo de una vista de búsqueda de pajar. Para hacer esto, he encontrado que la mejor manera es hacerlo de forma asíncrona, así que estoy usando Celery y Rabbitmq para administrar la tarea y crear el archivo e iterar sobre todos los resultados y luego notificar al usuario por correo electrónico que el archivo está listo para que lo agarren. Sin embargo, para aprobar el QuerySet de Aplery, necesito serializarlo.Serializar un conjunto de consultas django-haystack

¿Hay una forma rápida de hacerlo? ¿O debería copiar los parámetros de solicitud y volver a hacer la búsqueda?

+1

No es una buena práctica para pasar objetos de modelo o QeurySets de tareas (ver http://ask.github.com/celery/userguide/ tasks.html # state). Pero parece que puede estar libre aquí siempre que no cambie el estado de la base de datos en la tarea más adelante. En cuanto a cómo serializarlo, generalmente debería funcionar bien siempre y cuando use Task.serializer = "pickle" (predeterminado), puede haber algunos objetos en el conjunto de preguntas evaluadas que no sean susceptibles de ser recogidos. ¿Tal vez podría incluir el pickle pickle dale? – asksol

Respuesta

4

Puede serializar el Haystack QuerySet a JSON como esto:

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

Awesome answer man !!! . ")" falta al final. ;) – Kishan

Cuestiones relacionadas