Django ManyToMany对象保存到其他数据库

时间:2019-12-10 16:39:31

标签: django django-models

我有一个使用多个数据库的Django应用-每个客户端一个。保存新对象时,我使用.save(using=db)指定对象应保存到哪个数据库。

模型

class Document(models.Model):
    name = models.CharField(max_length=500, unique=True)

class Dataset(models.Model):
    name = models.CharField(max_length=500, unique=True)
    documents = models.ManyToManyField(Document, related_name="doc_datasets")

保存

dataset = Dataset(name = "myDataset")
dataset.save(using = db) # Success! The object is saved in the correct database.

document = Document(name = "myDocument")
document.save(using = db) # Success! The object is saved in the correct database.

尝试添加多对多关系时遇到问题:

dataset.documents.add(document) # This attempts to save to a default database (non-client specific)

添加相关对象时如何指定数据库?

1 个答案:

答案 0 :(得分:0)

该问题是由数据库路由器引起的。解决方法是禁用我制作的自定义路由器。