如何使django数据库使新对象获得id(最后一个对象的id + 1)而不是(last last object's id + 1)?

时间:2018-01-30 12:59:59

标签: python django sqlite

我正在写一个带有sqlite数据库的django网站,我在我的网站上有一个模型:

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)

假设我创建了Question对象“What is up”并将其删除,现在创建另一个Question对象“HI”,然后“Hi”将获得id 2而不是1.但我希望它只有1。这可能吗? 我使用django 1.8.7并且无法更改版本,因为整个数据库是用django 1.8.7编写的。

  >> f = Question(question_text="What's up",pub_date=timezone.now())
    >> f.id
       1
    >> f.delete()
    >> g = Question(question_text="Hi",pub_date=timezone.now())
    >> g.id
       2

任何帮助将不胜感激。谢谢提前

1 个答案:

答案 0 :(得分:0)

你可以做这样的事情

class Question(models.Model):
    id = models.IntegerField(primary_key=True)
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

覆盖保存并检查表中的最后一个可用ID和incerment by并分配给id。 虽然我不建议甚至在开发中这样做,但看到很多代码只适用于dev,只是因为有人忘了删除它