【发布时间】:2018-09-18 01:27:27
【问题描述】:
我想在某些模型中设置行数限制。为了实现这一点,当我在 django 中向数据库添加新行时,我想删除旧行并重新编号 id(pk)。
通过参考以下有关上述问题的链接,我能够设置行数限制并删除旧行。
Limit the number of rows in a Django table
但是,这个解决方案,当旧行被删除时, id(pk) 也被删除。 如果我将限制行数设置为 100,则删除数据库后的行 ID 从 101 开始。 为了解决这个问题,我想在删除旧 id 时将 id 重新编号为从 1 开始。 你能告诉我如何实现它吗?
class History(models.Model):
history = models.IntegerField(default=0)
def save(self):
objects = History.objects.all()
print(id)
if objects.count() > 100:
objects[0].delete()
self.save()
class Player(models.Model):
user = models.CharField(max_length=255)
game_count = models.IntegerField(default=0)
medal = models.IntegerField(default=100, verbose_name='medal')
game_history = models.ForeignKey(History, on_delete=models.CASCADE,
verbose_name='game_history', null=True)
def __str__(self):
return self.user
【问题讨论】:
标签: python django django-models