我有一个网站有大约7 dbs(国家特定的网站实例),我有很多重复的DATABASES字典设置,因为真正唯一的变化是DATABASE键,用于每个条目。Django - 建立settings.DATABASES字典编程
所以我想在设置中动态构建字典。我的代码工作正常,并建立,因为我曾手动之前输入了相同的字典,但由于某些原因,当我尝试运行它,我得到这个错误:
_mysql_exceptions.OperationalError: (1046, 'No database selected')
下面是我使用的设置生成的代码字典:
DATABASES = {}
for d in DBS:
#SITE_INSTANCE, e.g. 'dev' and DBS is a list of db names
name = '%s_%s' % (SITE_INSTANCE, d)
if not DATABASES: #first item - set up 'default'
d = 'default'
DATABASES[d] = {}
DATABASES[d]['name'] = name
DATABASES[d]['ENGINE'] = DB_ENGINE
DATABASES[d]['USER'] = DB_USERNAME
DATABASES[d]['PASSWORD'] = DB_PASSWORD
正如我所说的生成的字典是无法区分我手动输入的字典。我不明白为什么这不起作用......有什么想法?
imanc
哎呀!我敢打赌,这是... – user307927 2011-02-25 21:39:12
这解决了即时问题,但对硬编码的'NAME','ENGINE','USER'和'PASSWORD'以外的其他变量没有帮助。 – 2011-02-25 22:02:15