gpt4 book ai didi

python - 无法在 django 中使用多个数据库的查询集

转载 作者:太空宇宙 更新时间:2023-11-03 19:23:59 25 4
gpt4 key购买 nike

我能够使用默认数据库的查询集。但是当我使用另一个数据库的查询集时,抛出异常。

在我的应用程序中,我使用两个数据库。sqlite和Mysql

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'abc.db', # Or path to database file if using sqlite3.
'USER': '', # Not used with sqlite3.
'PASSWORD': '', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
},
'second' : {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'abc', # Or path to database file if using sqlite3.
'USER': 'abcdb', # Not used with sqlite3.
'PASSWORD': 'xxxxx', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}

当我对第一个数据库使用查询集时,它不会抛出任何异常。在使用第二个数据库时,它抛出表不可用。

TemplateSyntaxError at /abc/xyz/

Caught DatabaseError while rendering: no such table: second.tablename

Request Method: GET
Request URL: http://127.0.0.1:8000/xxx/yyyy/?q=abcd
Django Version: 1.3.1
Exception Type: TemplateSyntaxError
Exception Value:

Caught DatabaseError while rendering: no such table: second.tablename

最佳答案

感谢汤姆的回复,我已经手动尝试了第二个数据库,它对我有用。

   $model_seconddb.modelname.objects.using('seconddatabasename').filter(name='xxx')

当所有表都不存在于两个数据库中时,可以使用此方法。

当你想使用默认数据库时,没有要求使用(using)。它将直接从默认数据库中查询。

关于python - 无法在 django 中使用多个数据库的查询集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8901187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com