Django Admin添加新数据后丢失旧数据


class Song(models.Model):
song_id = models.AutoField(default=1,primary_key=True,editable=False)
file = models.FileField(upload_to=only_filename,null=True,blank=True)
name = models.CharField(max_length=50)
album_id = models.ForeignKey(Album, on_delete=models.CASCADE)
lyric = models.TextField()
cover_imagemodels.ImageField(upload_to="img/",default="img/None/icon.jpg")
listen_time = models.PositiveIntegerField(default=0,editable=False)
def __str__(self):
return self.name

上面是我的班级模型。首先,我登录Django Admin中的超级用户,然后添加一首新歌。这就是成功。但是,在那之后我又继续加了一首歌,只有一首最新的歌保存了下来,而老歌就消失了。我使用mysql命令行进行检查,只有最新的一个存在。如何修复?抱歉我英语不好。

您绝对不应该在主键字段song_id中设置默认值。该值是在实例化对象时指定的,而正确的序列值(由数据库设置(在对象保存之前不会指定,此时它已经有了一个值:1。因此,每个项目都使用相同的主键保存。

只需删除默认值。

最新更新