Так у меня есть проект Django с несколькими базами данных:Django Несколько баз данных Но Auth в однофазном Db
default
login
foo
bar
Каждое приложение имеет собственную базу данных (например, входа в систему приложение будет хранить все модели в авторизации базы данных и т.д.).
Я хочу хранить все связанные с Django администраторы, такие как разрешения, пользователи, группы в базе данных по умолчанию. Это как мой маршрутизатор выглядит:
class DBRouter(object):
default_db_apps = (
'auth',
'admin',
'contenttypes',
'sessions',
)
def db_for_read(self, model, **hints):
if model._meta.app_label in self.default_db_apps:
return 'default'
return model._meta.app_label
def db_for_write(self, model, **hints):
if model._meta.app_label in self.default_db_apps:
return 'default'
return model._meta.app_label
def allow_relation(self, obj1, obj2, **hints):
return True
def allow_syncdb(self, db, model):
if model._meta.app_label in self.default_db_apps:
return db == 'default'
return False
Когда я бегу:
python manage.py syncdb --noinput
Он создает все авторизовать из связанных таблиц в базе данных по умолчанию, который является правильным. Однако, когда я смотрю на таблицу auth_permissions, в других приложениях отсутствуют разрешения. Например:
defaultdb=# select * from auth_permission;
id | name | content_type_id | codename
----+-------------------------+-----------------+--------------------
1 | Can add log entry | 1 | add_logentry
2 | Can change log entry | 1 | change_logentry
3 | Can delete log entry | 1 | delete_logentry
4 | Can add permission | 2 | add_permission
5 | Can change permission | 2 | change_permission
6 | Can delete permission | 2 | delete_permission
7 | Can add group | 3 | add_group
8 | Can change group | 3 | change_group
9 | Can delete group | 3 | delete_group
10 | Can add user | 4 | add_user
11 | Can change user | 4 | change_user
12 | Can delete user | 4 | delete_user
13 | Can add content type | 5 | add_contenttype
14 | Can change content type | 5 | change_contenttype
15 | Can delete content type | 5 | delete_contenttype
16 | Can add session | 6 | add_session
17 | Can change session | 6 | change_session
18 | Can delete session | 6 | delete_session
(18 rows)
Я хотел бы разрешение на все модели (даже модели в различных базах данных), чтобы быть сохранены в приложении по умолчанию.
Любое решение для этого?