सब कुछ ठीक काम करता है। django's create() का सीधे सीक्वेंस इंसमेंटेशन से कोई लेना-देना नहीं है। संक्षेप में:
- postgresql ऑटो इंक्रीमेंटिंग ('सीरियल' टाइप) 'सीक्वेंस बनाएं + डिफॉल्ट के रूप में सीक्वेंस वैल्यू के साथ इंटीजरफील्ड बनाएं' का एक शॉर्टकट है
- django की ऑटोफ़ील्ड प्राथमिक कुंजी (यदि आपके द्वारा अन्य निर्दिष्ट नहीं की गई है) तो बस एक सीरियल फ़ील्ड बनाता है
- जब आप मैन्युअल रूप से आईडी निर्दिष्ट करते हैं, तो पोस्टग्रेज़ मान को डेटाबेस में सम्मिलित करता है। जब आप कोई मान निर्दिष्ट करते हैं, तो यह 'डिफ़ॉल्ट' पैरामीटर को छोड़ देता है, जो एक उचित व्यवहार है।
इसलिए, यदि आप चाहते हैं कि आपकी प्रविष्टियां आपकी पसंद के क्रम में अनुक्रम को बढ़ाएं, तो आपको SELECT setval('sequence_name', int_value) का उपयोग करके अनुक्रम मान को मैन्युअल रूप से बदलना होगा; अन्यथा इसे शून्य छोड़ दें और यह स्वचालित रूप से बढ़ जाएगा - वर्तमान वैल का चयन करें और इसे +1 बढ़ाएं (यदि अनुक्रम परिभाषा में अलग-अलग निर्दिष्ट नहीं है)।
एक और विचार यह है कि आप ऑब्जेक्ट बनाते हैं और फिर आईडी को अपडेट करते हैं (बेशक इसे पहले से उपयोग नहीं किया जा सकता है) और अंत में अनुक्रम मान को अधिकतम आईडी पर सेट करें।