from .models import Member class PaperworkRouter: app_label = 'paperwork' db = 'cms' def db_for_read(self, model, **hints): if model._meta.app_label == self.app_label: return self.db return None def db_for_write(self, model, **hints): if model._meta.app_label == self.app_label: return self.db return None def allow_relation(self, obj1, obj2, **hints): if (isinstance(obj1, Member) and obj2._meta.app_label == self.app_label) or \ (isinstance(obj2, Member) and obj1._meta.app_label == self.app_label): return True return None def allow_migrate(self, db, app_label, model_name=None, **hints): if db == self.db: return False return None # TODO: this is pretty hacky/special cased class MembershipWorksRouter: db = 'membershipworks' def db_for_read(self, model, **hints): if model == Member: return self.db return None def db_for_write(self, model, **hints): if model == Member: return self.db return None def allow_relation(self, obj1, obj2, **hints): return None def allow_migrate(self, db, app_label, model_name=None, **hints): if db == self.db: return False return None