2010-06-23 13 views
8

मैं एक प्रश्नोत्तरी में देखे गए परिणामों को निर्यात करना चाहता हूं जो मुझे एक हैस्टैक खोज दृश्य से प्राप्त होता है। ऐसा करने के लिए, मुझे यह पता चला है कि यह असीम रूप से कर रहा है, इसलिए मैं कार्य को प्रबंधित करने के लिए सेलेरी और खरगोश का उपयोग कर रहा हूं और वहां सभी परिणामों पर फ़ाइल बनाते हैं और फिर उपयोगकर्ता को ईमेल के माध्यम से सूचित करते हैं फ़ाइल उन्हें पकड़ने के लिए तैयार है। हालांकि, सेलेरी द क्वेरीसेट पास करने के लिए, मुझे इसे क्रमबद्ध करने की आवश्यकता है।एक django-haystack queryset serialize

क्या ऐसा करने का कोई त्वरित तरीका है? या मुझे अनुरोध पैरामीटर कॉपी करना चाहिए और खोज को फिर से करना चाहिए?

+1

यह कार्य करने के लिए मॉडल वस्तुओं या QeurySets पारित करने के लिए एक सबसे अच्छा अभ्यास नहीं है (http://ask.github.com/celery/userguide/ देखना tasks.html # राज्य)। लेकिन ऐसा लगता है कि जब तक आप कार्य में किसी भी डेटाबेस स्थिति को तब तक नहीं बदलते हैं, तब तक आप यहां स्पष्ट रूप से स्पष्ट हो सकते हैं। इसे क्रमबद्ध करने के तरीके के रूप में, आमतौर पर जब तक आप Task.serializer = "pickle" (डिफ़ॉल्ट) का उपयोग करते हैं, तब तक ठीक काम करना चाहिए, मूल्यांकन की गई क्वेरीसेट में कुछ ऑब्जेक्ट्स हो सकती हैं जो पिकलेबल नहीं हैं। शायद आप ट्रेसबैक अचार शामिल कर सकते हैं? – asksol

उत्तर

4

आप इस तरह JSON के Haystack क्वेरीसमूह को क्रमानुसार कर सकते हैं:

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

बहुत बढ़िया उत्तर आदमी !!! । ")" अंत में गायब है। ;) – Kishan

संबंधित मुद्दे