cmsmanage/paperwork/routers.py

51 lines
1.3 KiB
Python

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