Как сохранить модель в другую базу данных в Django? - PullRequest
0 голосов
/ 03 августа 2020

У меня две базы данных: default и db_2. Я хочу сохранить свои модели только в db_2. Вот мои БАЗЫ ДАННЫХ:

DATABASES = {
    'default': {
        'ENGINE': "django.db.backends.postgresql_psycopg2",
        'NAME': "default",
        "USER": "postgres",
        "HOST": "localhost",
        "PASSWORD": "password",
        "PORT": ""
    },
    'db_2': {
        'ENGINE': "django.db.backends.postgresql_psycopg2",
        'NAME': "db_2",
        "USER": "postgres",
        "HOST": "localhost",
        "PASSWORD": "password",
        "PORT": ""
    }
}

Что мне нужно сделать, если я не хочу сохранять сервисные таблицы Django (например, auth_group, auth_user et c.) В db_2? Вот мой роутер, но он работает некорректно.

class DBRouter:
    def __init__(self):
        self.allowed_models = [Book, Author, Genre, ]

    def db_for_read(self, model, **hints):
        if type(model) in self.allowed_models:
            return "db_2"
        return None

    def db_for_write(self, model, **hints):
        if type(model) in self.allowed_models:
            return "db_2"
        return None

    def allow_relation(self, obj1, obj2, **hints):
        if type(obj1) in self.allowed_models and type(obj2) in self.allowed_models:
            return True
        return False

Спасибо.

...