Comment connaître le nom actuel de la base de données dans Django?

Je suis en train d'écrire des tests dans mon projet django. Pour l'instant, j'ai deux connexions de base de données:

(settings.py)
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'db_name'
        ...
    },
}

et de connexion personnalisée pour MongoDB:

import sys
from pymongo import Connection
from pymongo.errors import ConnectionFailure
try:
    connection = Connection(host="localhost", port=27017)
    db = connection['db_name']
    print "Connected successfully(Mongo, db_name)"
except ConnectionFailure, e:
    sys.stderr.write("Could not connect to MongoDB: %s" % e)
    sys.exit(1)

et je veux savoir si mon projet est en cours d'exécution à travers

python manage.py test myapp

Car lorsque vous exécutez des tests, django créer automatiquement séparé DB(avec un nom comme test_db_name), mais dans ce cas, Mongo sera toujours exécuté avec db_name. J'ai essayé:

import sys
from pymongo import Connection
from pymongo.errors import ConnectionFailure
from django.db import connections

try:
    connection = Connection(host="localhost", port=27017)
    db_name = connections['default'].settings_dict['NAME']
    db = connection[db_name]
    print "Connected successfully(Mongo, %s)" % (db_name,)
except ConnectionFailure, e:
    sys.stderr.write("Could not connect to MongoDB: %s" % e)
    sys.exit(1)

mais il ne fonctionne pas

source d'informationauteur Artem Mezhenin