Good day!

django 1.10 python 3.5 posgresql 9.5

Added a new Question object and it was added with id = 3, added an object yesterday, but then deleted it. Why a new object was not added with id = 2.

models.py

from __future__ import unicode_literals import datetime from django.db import models from django.utils import timezone class Question(models.Model): question_text=models.CharField(max_length=200) pub_date=models.DateTimeField('date published') def __str__(self): return self.question_text def was_published_recently(self): return self.pub_date>=timezone.now()-datetime.timedelta(days=1) class Choice(models.Model): question=models.ForeignKey(Question,on_delete=models.CASCADE) choice_text=models.CharField(max_length=200) votes=models.IntegerField(default=0) def __str__(self): return self.choice_text 

one

  • one
    Because identifiers are sequentially increasing numbers. When you delete a row from a table, the identifier is not "released". - Sergey Gornostaev

1 answer 1

PostgreSQL stores identifiers in so-called sequences (Sequences). You can view the Sequence through any ide to work with the database. The Sequence stores the following id for assignment at the next INSERT to the database. UPDATEs and DELETEs do not affect the value in the Sequence. Here, in more detail, how it works