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': '',
}}
我认为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)
在dev服务器上(默认数据库是sqlite3),该视图工作正常,但在生产服务器上Django提升
异常值:不能对不同数据库的查询进行子查询。
请帮助。
添加: 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
答案 0 :(得分:1)
我找到了一种解决问题的方法: 将QuerySet更改为列表并使用它进行过滤。
答案 1 :(得分:0)
更新到cacheops 2.4.1或更高版本将解决它。
现在已修复corresponding issue。
答案 2 :(得分:-1)
问题是由'cacheops'应用引起的。由作者修正。