2012-01-07 19 views
46

मेरे पास एक Django एप्लिकेशन है जो वेब एपीआई से डेटा पढ़ता है और इसे डेटाबेस में रखता है।
क्या किसी मोड से नई ऑब्जेक्ट बनाने का कोई तरीका है लेकिन यदि ऑब्जेक्ट पहले से मौजूद है तो डुप्लिकेट अपवाद को रोकें?बनाएँ यदि मौजूद नहीं है

दूसरे शब्दों में, किसी ऑब्जेक्ट को सहेजने का कोई तरीका है, लेकिन अगर यह पहले से मौजूद है तो कुछ भी नहीं करने के लिए?

उत्तर

85
+13

स्टैक ओवरफ़्लो हमेशा कहते हैं मेरा उत्तर बहुत छोटा है जब मैं संक्षिप्त हूँ। –

+7

इसे दस्तावेज़ों के लिए एक लिंक बनाने से कुछ वर्ण जोड़े जाते हैं (और मुझे लगता है कि यह एक बेहतर जवाब है) – second

+3

ऐसा लगता है कि 2 प्रश्न हैं। अगर मैं केवल वस्तु को सहेजना चाहता हूं, यदि यह अस्तित्व में नहीं है, तो क्या केवल 1 क्वेरी के साथ कोई तरीका है? मुझे लगता है कि 'IntegrityError' को पकड़ने के लिए वर्तमान लेनदेन का कारण बनना पर्याप्त नहीं है। –

35

Django 1.7 में, आप भी कर सकते हैं:

Model.objects.update_or_create()

+2

पर मैं वास्तव में 1.6 में इसका उपयोग कर सकता था। – erewok

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