我有一个使用多个数据库的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)
添加相关对象时如何指定数据库?
答案 0 :(得分:0)
该问题是由数据库路由器引起的。解决方法是禁用我制作的自定义路由器。