Hello all;

I'm just learning Django and i'm trying to get proxy db managers
working, but i can't manage to get it working. I've read the docs and
tried to search on google, but it seems unuseful.

Can anybody help me?

I'm attaching the error and my code.

setting.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'intranet.db',
    },
    'viejuna': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'gestio_sl_utf8',
        'USER': 'webadmin',
        'PASSWORD': '',
        'HOST': '192.168.1.4',
        'PORT': '',
    }
}
DATABASE_ROUTERS = ['intranet.vieja.models.ProxyDB',]

vieja/models.py:

from django.db import models

class old_Dominis(models.Model):
    id = models.IntegerField(primary_key=True)
    nom = models.CharField(max_length=70)
    extensio = models.CharField(max_length=20)
    id_account = models.IntegerField()
    years = models.SmallIntegerField()
    creat = models.DateField()
    expira = models.DateField()
    redirec = models.BooleanField()
    c1 = models.BooleanField()
    c2 = models.BooleanField()
    dns_type = models.SmallIntegerField()
    lock = models.BooleanField()
    pl = models.BooleanField()
    titular = models.TextField()
    contacte_admin = models.CharField(max_length=150)
    id_c_f = models.IntegerField()
    contacte_fac = models.TextField()
    id_grup = models.IntegerField()
    grup = models.CharField(max_length=200)
    dns1 = models.CharField(max_length=150)
    dns2 = models.CharField(max_length=150)
    estat = models.CharField(max_length=50)
    class Meta:
        db_table = u'dominis_view2'
        managed = False

class ProxyDB(object):
    def db_for_read(self, model, **hints):
        if model._meta.app_label == 'vieja':
            return 'viejuna'
        return 'default'

    def db_for_write(self, model, **hints):
        if model._meta.app_label == 'vieja':
            return 'viejuna'
        return 'default'

    def allow_relation(self, obj1, obj2, **hints):
        if obj1._meta.app_label == 'vieja' and obj2._meta.app_label ==
'vieja':
            return True
        elif obj1._state.db == 'default' and obj2._state.db ==
'default':
            return True
        return None

    def allow_syncdb(self, db, model):
        if db == 'viejuna':
            return model._meta.app_label == 'vieja'
        elif model._meta.app_label == 'vieja':
            return False
        return True

The Error:

$> dj validate
Traceback (most recent call last):
  File "manage.py", line 11, in <module>
    execute_manager(settings)
  File "/usr/lib/python2.6/site-packages/django/core/management/
__init__.py", line 438, in execute_manager
    utility.execute()
  File "/usr/lib/python2.6/site-packages/django/core/management/
__init__.py", line 379, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/lib/python2.6/site-packages/django/core/management/
base.py", line 191, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/usr/lib/python2.6/site-packages/django/core/management/
base.py", line 209, in execute
    translation.activate('en-us')
  File "/usr/lib/python2.6/site-packages/django/utils/translation/
__init__.py", line 66, in activate
    return real_activate(language)
  File "/usr/lib/python2.6/site-packages/django/utils/functional.py",
line 55, in _curried
    return _curried_func(*(args+moreargs), **dict(kwargs,
**morekwargs))
  File "/usr/lib/python2.6/site-packages/django/utils/translation/
__init__.py", line 36, in delayed_loader
    return getattr(trans, real_name)(*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/django/utils/translation/
trans_real.py", line 193, in activate
    _active[currentThread()] = translation(language)
  File "/usr/lib/python2.6/site-packages/django/utils/translation/
trans_real.py", line 176, in translation
    default_translation = _fetch(settings.LANGUAGE_CODE)
  File "/usr/lib/python2.6/site-packages/django/utils/translation/
trans_real.py", line 159, in _fetch
    app = import_module(appname)
  File "/usr/lib/python2.6/site-packages/django/utils/importlib.py",
line 35, in import_module
    __import__(name)
  File "/usr/lib/python2.6/site-packages/django/contrib/admin/
__init__.py", line 1, in <module>
    from django.contrib.admin.helpers import ACTION_CHECKBOX_NAME
  File "/usr/lib/python2.6/site-packages/django/contrib/admin/
helpers.py", line 1, in <module>
    from django import forms
  File "/usr/lib/python2.6/site-packages/django/forms/__init__.py",
line 17, in <module>
    from models import *
  File "/usr/lib/python2.6/site-packages/django/forms/models.py", line
6, in <module>
    from django.db import connections
  File "/usr/lib/python2.6/site-packages/django/db/__init__.py", line
64, in <module>
    router = ConnectionRouter(settings.DATABASE_ROUTERS)
  File "/usr/lib/python2.6/site-packages/django/db/utils.py", line
112, in __init__
    raise ImproperlyConfigured('Error importing database router %s:
"%s"' % (klass_name, e))
django.core.exceptions.ImproperlyConfigured: Error importing database
router ProxyDB: "cannot import name connection"

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to