всичко работи добре. create() на django няма нищо общо с директното създаване на последователност. накратко:
- postgresql auto incrementing('serial' type) е просто пряк път на 'create sequence + create integerfield with a value value as default'
- първичният ключ за автоматично поле на django (idinteger, ако не е указано друго от вас) просто създава серийно поле
- когато посочите идентификатора ръчно, postgres вмъква стойността в базата данни. когато посочите стойност, тя пропуска параметъра „по подразбиране“, което е правилно поведение.
така че, ако искате вашите вмъквания да увеличават последователността по начин по ваш избор, трябва ръчно да промените стойността на последователността, като използвате SELECT setval('sequence_name', int_value); в противен случай го оставете null и той ще се увеличи автоматично - изберете текущата стойност и го увеличете +1 (ако не е указано друго в дефиницията на последователността).
друга идея е да създадете обекта и след това да актуализирате идентификатора (разбира се, той вече не може да се използва) и накрая да зададете стойността на последователността на максималния идентификатор.