Операция сохранения модели django не создается в базе данных по умолчанию

У меня определены две базы данных:

'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'USER': 'app-api-master',
            'PASSWORD': 'sdf',
            'HOST': 'localhost',
            'NAME': 'ev_offshore_bkup'            
        },
        'onshore_db': {
            'ENGINE': 'django.db.backends.postgresql',
            'USER': 'app-api-master',
            'PASSWORD': 'sdf',
            'HOST': 'localhost',
            'NAME': 'ev_onshore_bkup'            
        }

В модели:

    def save(self, *args, **kwargs):
        kwargs['using'] = 'default'
        super().save(*args, **kwargs)
        NoTice I've commented these
        #kwargs['using'] = 'onshore_db'
        #super().save(*args, **kwargs)

В наборе представлений:

        with transaction.atomic():
            self.serializer_class = self.create_serializer_class
            created_user = viewsets.ModelViewSet.create(self, request, *args, **kwargs)
            created_user_id = created_user.data['id']

Программа create() только сразу сохраняет запись в onshore_db и не учитывает default db.

Даже после комментирования конфигурации onshore_db, когда я запускаю приложение, я обнаруживаю, что новые объекты модели создаются только в onshore_db и никаких записей в default db.

В чем может быть причина?

Также определен db-router:

def get_db_name():
    cache_data = {}
    db = 'default'
    request = get_current_request()
    try:            
        user_id = request.session._session_cache['_auth_user_id']
        cache_data = cache.get(user_id, {})
    except Exception as e:
        return db
    if cache_data.get('CLIENT_DB_NAME', None):
        db = cache_data.get('CLIENT_DB_NAME')
    return db


class MatrixDBRouter:
    # TODO encrypt db name where data from onshore
    def db_for_read(self, model, **hints):
        return get_db_name()

    def db_for_write(self, model, **hints):
        return get_db_name()

    def allow_relation(self, obj1, obj2, **hints):
        return True

    def allow_migrate(self, db, app_label, model_name=None, **hints):
        return True

Но это возвращает только default db.

Вернуться на верх