Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django ValueError: Can't do subqueries with queries on different DBs

Tags:

django

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'NAME': 'default_db',
'USER': 'user',
    'PASSWORD': '123123123',
    'HOST': 'localhost',
'PORT': '',
},
'omskgkh': {
    'NAME': 'general',
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'USER': 'user',
    'PASSWORD': '123123123',
    'HOST': '123.123.123.123',
    'PORT': '',
}}

in my view:

def districtreport(request):

info = models.InfoAddress.objects.using('general')
kao = info.filter(okrug='КАО').values('home')

kao_accounts = models.Operation.objects.using('general').filter(account_id__home_id=kao)

On dev server with (default database is sqlite3) that view works fine, but on production server Django raise

Exception Value: Can't do subqueries with queries on different DBs.

Please, help.

ADD: models.py

class Home(models.Model):
  id = models.IntegerField(primary_key=True)
  ...

  class Meta:
      db_table = "home"
      managed = False


class InfoAddress(models.Model):
    id = models.IntegerField(primary_key=True)
    home = models.ForeignKey(Home)
    okrug = models.CharField(max_length=255)
    ...

class Meta:
    db_table = "infoaddress"
    managed = False


class Account(models.Model):
    id = models.IntegerField(primary_key=True)
    home = models.ForeignKey(Home)
    ...

class Meta:
    db_table = "account"
    managed = False


class Operation(models.Model):
    id = models.IntegerField(primary_key=True)
    account = models.ForeignKey(Account)
    ...

class Meta:
    db_table = "account_op"
    managed = False
like image 536
Alexander Mikhailov Avatar asked Dec 06 '25 15:12

Alexander Mikhailov


1 Answers

I found one way to solve problem: Change QuerySet to list and filter with it.

like image 184
Alexander Mikhailov Avatar answered Dec 08 '25 11:12

Alexander Mikhailov



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!