2010-06-23 7 views
8

Ich möchte die Ergebnisse exportieren, die ich in einem Queryset habe, das ich von einer Heuhaufen-Suchansicht erhalte. Um dies zu tun, habe ich den besten Weg gefunden, es asynchron zu machen, also verwende ich Sellerie und Rabbitmq, um die Aufgabe zu verwalten und dort die Datei zu erstellen und über alle Ergebnisse zu iterieren und dann den Benutzer per E-Mail darüber zu informieren Die Datei ist bereit für sie. Um Sellery das QuerySet zu übergeben, muss ich es jedoch serialisieren.Serialisieren eines Django-Heuschober-Abfrage-Sets

Gibt es einen schnellen Weg, dies zu tun? Oder sollte ich die Anfrageparameter kopieren und die Suche wiederholen?

+1

Es ist kein Best-Practice-Modell-Objekte oder QeurySets, um Aufgaben zu übergeben (siehe http://ask.github.com/celery/userguide/ tasks.html # state). Aber es klingt, als ob Sie hier im Klaren sind, solange Sie danach keinen Datenbankzustand in der Aufgabe ändern. Wie es zu serialisieren, sollte das normalerweise gut funktionieren, solange Sie Task.serializer = "pickle" (Standard) verwenden, gibt es möglicherweise einige Objekte in dem ausgewerteten Abfrage-Set, das nicht pickleable ist. Vielleicht könnten Sie die Traceback Pickle geben? – asksol

Antwort

4

Sie können den Haystack QuerySet zu JSON wie diese serialisiert:

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

Super Antwort Mann !!! . ")" fehlt am Ende. ;) – Kishan

Verwandte Themen