Routes models of each app into the database with same name falling back to "default" database.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | from django.conf import settings
class AppNameDatabaseRouter(object):
"""
Per application database. Use the database named like the app or fall
back to default.
"""
def db_for_read(self, model, **hints):
if model._meta.app_label in settings.DATABASES:
return model._meta.app_label
return None
def db_for_write(self, model, **hints):
if model._meta.app_label in settings.DATABASES:
return model._meta.app_label
return None
def allow_relation(self, obj1, obj2, **hints):
return obj1._meta.app_label == obj2._meta.app_label
|
More like this
- Template tag - list punctuation for a list of items by shapiromatron 10 months, 2 weeks ago
- JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 10 months, 3 weeks ago
- Serializer factory with Django Rest Framework by julio 1 year, 5 months ago
- Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year, 6 months ago
- Help text hyperlinks by sa2812 1 year, 7 months ago
Comments
Please login first before commenting.