Can';t从Django模型中的两个数据库中删除实例

Can';t从Django模型中的两个数据库中删除实例,django,django-models,Django,Django Models,我试图在两个数据库中删除一个模型的实例,但用户在管理中删除了它。当他们创建一个新实例并保存它时,它将进入两个数据库。但我无法将其从两个数据库中删除,因为第一个delete调用会删除该实例,所以第二个调用会抛出一个断言错误。是否有方法捕获实例并同时从两个数据库中删除它们 class Change(models.Model): content = models.TextField() date = models.DateField(auto_now = True) def

我试图在两个数据库中删除一个模型的实例,但用户在管理中删除了它。当他们创建一个新实例并保存它时,它将进入两个数据库。但我无法将其从两个数据库中删除,因为第一个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')

这很有效。我在设置ID时做了类似的事情,但当我第一次删除它时,它会删除我的引用。我找到了一个使用信号、接收器和原始sql的解决方案。这要优雅得多。谢谢