Django dumpdata कमांड टूटा हुआ है क्योंकि यह डेटा डंप किए गए डेटा को कम करने के किसी भी उचित तरीके का समर्थन नहीं करता है। मुझे की आवश्यकता है विभिन्न क्वेरीसेट्स (और मुझे बाहरी मॉडल संबंधों से वस्तुओं को डंप करने की देखभाल करने की आवश्यकता नहीं है) की एक स्थिरता बनाएं। उन क्वेरीसेट्स के लिए आइटम्स की संख्या सीमित करना, जैसे django-test-utils makefixture पर्याप्त नहीं है। कस्टम मैनेजर के साथ प्रॉक्सी मॉडल का उपयोग करके इसे प्राप्त करने का प्रयास किया, लेकिन यह दृष्टिकोण काम नहीं करता है - डंपडाटा ओमिट प्रॉक्सी मॉडल (जो उचित है)।मैं django में QuerySet से कैसे एक स्थिरता बना सकता हूं?
उत्तर
यदि dumpdata
काम नहीं करता है, तो आप Django Serializing data के माध्यम से ऐसा कर सकते हैं।
from django.core import serializers
data = serializers.serialize("json", SomeModel.objects.all())
और फिर फ़ाइल पर data
लिखें।
मुझे यकीन है कि आप "बाहरी मॉडल संबंधों", हो सकता है एक उदाहरण में मदद मिलेगी क्या मतलब है नहीं कर रहा हूँ, लेकिन आप मॉडल आप में ...
manage.py dumpdata --help
Usage: ./manage.py dumpdata [options] [appname appname.ModelName ...]
रुचि रखते हैं DumpData पारित कर सकते हैं और वहाँ को बाहर स्विच:
-e EXCLUDE, --exclude=EXCLUDE
An appname or appname.ModelName to exclude (use
multiple --exclude to exclude multiple apps/models).
मेरा मतलब था कि डंपिंग को मॉडल से जुड़े मॉडल से ट्रैक रखने की आवश्यकता नहीं है। – pielgrzym
निम्न चरणों के का हल पूरा प्रदान समर्थन कर रही विभिन्न क्वेरीसमूहों की एक दृढ़ बनाने में मदद मिलेगी।
from django.core import serializers
from django.core.management.commands.dumpdata import sort_dependencies
app_list = {}
# Add all your querysets here. The key for the dictionary can be just a
# unique dummy string (A safe hack after reading django code)
app_list['app1_name'] = FirstModel.objects.all()
app_list['app2_name'] = SecondModel.objects.all()
# The sort_dependencies will ensure that the models are sorted so that
# those with foreign keys are taken care. If SecondModel has a fk to FirstModel,
# then sort_dependencies will take care of the ordering in the json file so that
# FirstModel comes first in the fixture thus preventing ambiguity when reloading
data = serializers.serialize("json", sort_dependencies(app_list.items()))
f = open('output.json', 'w')
f.write(data)
f.close()
अब आउटपुट output.json
फ़ाइल में उपलब्ध होगा। json फ़ाइल से मॉडल के पुनर्निर्माण के लिए:
from django.core import serializers
for obj in serializers.deserialize('json', open('output.json').read()):
obj.save()
संपादित: अजीब, sort_dependencies अपेक्षा के अनुरूप काम नहीं किया। तो मैं अजगर आदेश दिया गया आदेश का उपयोग कर समाप्त हो गया और आदेश खुद का फैसला किया।
import collections
app_list = collections.OrderedDict()
उत्कृष्ट! आपका बहुत बहुत धन्यवाद! – pielgrzym