Есть ли способ установить значение id новых объектов Django для запуска с определенного значения? - PullRequest
13 голосов
/ 08 декабря 2011

Есть ли способ установить счетчик значений идентификаторов для объектов в Django?

Например, у меня есть набор объектов «Видео», которые в настоящее время имеют значение id = 100 при следующем создании объектатипа «видео» это будет id = 101.Однако я хотел бы, чтобы все вновь созданные объекты Video начинались с id = 2000.Есть ли способ сделать это?

Ответы [ 2 ]

16 голосов
/ 08 декабря 2011

Вы можете указать идентификатор при создании объекта, если вы делаете это до сохранения:

new = Video()
new.id = 2000
new.save()

Вы можете просто рассчитать желаемый идентификатор каждый раз, хотя я не уверен, что не так с полями автоматического идентификатора Django;)

4 голосов
/ 12 декабря 2011

Вы можете создать прибор, который создаст фиктивную строку в вашей базе данных с ID = 1999. Тогда следующий автоматически сгенерированный идентификатор будет 2000.

Это решение, вероятно, зависит от вашей базы данных «возобновить, где вы остановились». По крайней мере, MySql и PostgreSQL делают это (я полагаю, это делает каждый бэкэнд).

Существует также решение только для MySql (насколько я знаю), которое состоит из оператора SQL ALTER TABLE tbl AUTO_INCREMENT = 100;

Впрочем, это больше не будет зависеть от базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...