# settings.py
...
DATABASES = {
'default': {
'ENGINE': 'mysql',
'NAME': 'default',
'USER': 'root',
'PASSWORD': '123',
},
'mydb': {
'ENGINE': 'mysql',
'NAME': 'mydb',
'USER': 'root',
'PASSWORD': '123',
}
}
DATABASE_ROUTERS = ['project.router.MyAppRouter']
...
# router.py
class MyAppRouter(object):
def db_for_read(self, model, **hints):
if model._meta.app_label == 'myapp':
return 'mydb'
return None
def db_for_write(self, model, **hints):
if model._meta.app_label == 'myapp':
return 'mydb'
return None
def allow_relation(self, obj1, obj2, **hints):
if obj1._meta.app_label == 'myapp' or obj2._meta.app_label == 'myapp':
return True
return None
def allow_syncdb(self, db, model):
if db == 'mydb':
return model._meta.app_label == 'myapp'
elif model._meta.app_label == 'myapp':
return False
return None
Как мне сделать класс роутера так, чтобы модели моих приложений сохранялись в mydb а модели django-приложений в базе default.
У меня пока одно приложение - myapp.
Сейчас у меня все в default записывается и только модели django-проектов..