我正在为我的django项目使用多数据库系统。在
但是当我试图保存表单时,我得到了一个错误:save()得到了一个意外的关键字参数“using”
下面是我的简单代码:
我的观点:
def addCompany2(request):
"""Add a company"""
selectedObject = Companydataset()
if request.method == 'POST':
formCompany2 = CompanyForm2(request.POST, instance=selectedObject)
selectedObject = formCompany2.save(using='dataset')
else:
formCompany2 = CompanyForm2(instance=selectedObject)
return render_to_response('company/addCompany2.html', {'referer': referer, 'formCompany2': formCompany2}, context_instance=RequestContext(request))
我的模型
^{pr2}$我的表格:
class CompanyForm2(ModelForm):
class Meta:
model = CompanyDataset
#exclude = ('website')
def __init__(self, *args, **kwargs):
super(CompanyForm2, self).__init__(*args, **kwargs)
self.fields.keyOrder = [
'nom',
'country'
]
设置本地
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'XXXXX',
'USER': 'XXXXX',
'PASSWORD': 'XXXXX',
'HOST': '127.0.0.1',
'PORT': '',
},
'dataset': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'XXXXX',
'USER': 'XXXXX',
'PASSWORD': 'XXXXX',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}
参考文档:https://docs.djangoproject.com/en/1.6/topics/db/multi-db/我不明白它为什么不起作用?我可能做错了什么,但我找不到什么。在
我的django版本是:1.6.2
提前谢谢你的帮助。:)
文档没有说明窗体的save方法的
using
参数。不过,有一个是为了保存模型。因此,您可以通过使用commit=False保存模型对象,然后使用using
保存它:using=
关键字参数在模型save()
方法上,而不是ModelForm
保存方法上。您应该这样做:解决方案是创建一个数据库用户:https://docs.djangoproject.com/en/dev/topics/db/multi-db/#database-routers
以下是我在第一个问题中给出的工作示例:
在数据库路由器.py在
感谢大家的帮助:)
相关问题 更多 >
编程相关推荐