definir banco de dados dinamicamente com base em solicitação no django

Estou escrevendo um aplicativo multilocatário com python-django.

Eu quero definir a conexão com o banco de dados com base em cada request.I pensei que eu poderia escrever um middleware onde definimos o banco de dados a ser usado para esse banco de dados específico.

import re
from django.db import connections

class SetTenantDatabase(object):
    def process_request(self, request):
        pattern = re.compile("\\b(http://|https://|www.|.com|8000|:|//)\\W\\d+", re.I)
        words = request.get_host()        
        db_name = [pattern.sub("", words)][0].split('.')[0]
        connections.databases['new-alias'] = { 
        'default': {
                    'ENGINE': 'django.db.backends.postgresql_psycopg2',
                    'NAME': 'store1',
                    'USER': 'xxx',
                    'PASSWORD': 'xxx',
                    'HOST': '127.0.0.1',
    } 
                                              }
        conn = connections['new-alias']
        return None

mas isso não está funcionando. Como devo fazer isso. A abordagem está errada ou a solução é viável e, por último, como?

questionAnswers(2)

yourAnswerToTheQuestion