我可以通过在settings.py中设置multi-db来添加到多个数据库
所以设置文件看起来像
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': config['DB_NAME'],
'USER': config['DB_USER'],
'PASSWORD': config['DB_PASSWORD'],
'HOST': config['DB_HOST'],
'PORT': config['DB_PORT'],
},
'tableau': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'tableau',
'USER': 'postgres',
'PASSWORD': 'postgres',
'HOST': 'localhost',
'PORT': 5432,
},
}
然后,我创建django.db.models.Model
的子类并在应用程序的model.py
中进行建模
from django.db.models import Model
class MultiDbModel(Model):
class Meta:
abstract = True
def save(self, *args, **kwargs):
for dbname in settings.DATABASES:
super(MultiDbModel, self).save(using=dbname)
class People(MultiDbModel):
name = CharField(max_length=255)
country = CharField(max_length=255)
def save(self, *args, **kwargs):
super(App, self).save(args, kwargs)
因此,当我创建新对象时,它会保存到两个数据库中。
People.objects.create(name='alok', location='India')
对于这种方法,我想添加update
和delete
查询的功能,就像create
正常工作一样。
运行update
和delete
查询时会调用什么方法,或者如何为多个数据库添加删除和更新功能?
答案 0 :(得分:0)
我将覆盖管理方法。p {x} = (y : f x ) (z : g x) → (coerce f≡g y) ≡ z
既可以创建又可以更新方法。为deleting对象添加save_model
。
请参阅: https://docs.djangoproject.com/en/2.1/ref/contrib/admin/#modeladmin-methods