无法从 Django 模型中的两个数据库中删除实例
Can't delete instance from two databases in Django model
当用户在管理员中删除它时,我试图删除两个数据库中的模型实例。当他们创建一个新实例并保存它时,它会转到两个数据库。但是我无法从两个数据库中删除它,因为第一次调用 delete 删除了实例,所以第二次调用会引发断言错误。有没有办法捕获实例并同时从两个数据库中删除它们?
class Change(models.Model):
content = models.TextField()
date = models.DateField(auto_now = True)
def save(self):
super(Change, self).save(using='default')
super(Change, self).save(using='labs')
def delete(self):
#Here it is deleted from the default database.
super(Change, self).delete(using='default')
#This doesn't work because Ive deleted the instance. How do I get this to work as well?
super(Change, self).delete(using='labs')
如果两个数据库,您确定实例具有相同的 pk
值吗?如果是,那么您应该在从第二个数据库删除之前恢复实例的 pk
:
def delete(self):
pk = self.pk
super(Change, self).delete(using='default')
self.pk = pk
super(Change, self).delete(using='labs')
当用户在管理员中删除它时,我试图删除两个数据库中的模型实例。当他们创建一个新实例并保存它时,它会转到两个数据库。但是我无法从两个数据库中删除它,因为第一次调用 delete 删除了实例,所以第二次调用会引发断言错误。有没有办法捕获实例并同时从两个数据库中删除它们?
class Change(models.Model):
content = models.TextField()
date = models.DateField(auto_now = True)
def save(self):
super(Change, self).save(using='default')
super(Change, self).save(using='labs')
def delete(self):
#Here it is deleted from the default database.
super(Change, self).delete(using='default')
#This doesn't work because Ive deleted the instance. How do I get this to work as well?
super(Change, self).delete(using='labs')
如果两个数据库,您确定实例具有相同的 pk
值吗?如果是,那么您应该在从第二个数据库删除之前恢复实例的 pk
:
def delete(self):
pk = self.pk
super(Change, self).delete(using='default')
self.pk = pk
super(Change, self).delete(using='labs')