Добавить, удалить, обновить несколько баз данных путем создания подкласса django.db.models.Model в django
Я хочу написать, чтобы добавить, обновить удалить в несколько баз данных с помощью django.db.models.Model
Я могу добавить несколько баз данных, установив multi-db в settings.py
Так что установочный файл выглядит так
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
запрос выполняется или как я могу добавить возможность удаления и обновления нескольких баз данных?
1 ответ
Я бы переопределил методы администратора.save_model
обслуживает как создать и обновить метод. добавлять delete_model
для удаления объекта.
См. https://docs.djangoproject.com/en/2.1/ref/contrib/admin/.