mọi thứ đều hoạt động tốt. create () của django không liên quan gì đến việc thực thi trình tự một cách trực tiếp. ngắn gọn:
- tự động tăng dần postgresql (kiểu 'nối tiếp') chỉ là một phím tắt của 'tạo trình tự + tạo trường số nguyên với giá trị trình tự làm mặc định'
- khóa chính trường tự động của django (idinteger nếu bạn không chỉ định khác) chỉ tạo một trường nối tiếp
- khi bạn chỉ định id theo cách thủ công, postgres sẽ chèn giá trị vào cơ sở dữ liệu. khi bạn chỉ định một giá trị, nó sẽ bỏ qua tham số 'mặc định', đây là một hành vi phù hợp.
vì vậy, nếu bạn muốn các phần chèn của mình tăng chuỗi theo cách bạn chọn, bạn cần phải thay đổi thủ công giá trị chuỗi bằng cách sử dụng SELECT setval ('serial_name', int_value); nếu không, hãy để nó rỗng và nó sẽ tự động tăng lên - chọn giá trị hiện tại và tăng nó lên +1 (nếu không được chỉ định khác trong định nghĩa trình tự).
một ý tưởng khác là bạn tạo đối tượng và sau đó cập nhật id (tất nhiên nó không thể được sử dụng) và cuối cùng đặt giá trị trình tự thành id tối đa.