我正在为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))


我的模特

class CompanyDataset(models.Model):
    name = models.CharField(max_length=255, blank=True)
    ....
    ...
    ...

    def __unicode__(self):
        return self.name

    class Meta:
        db_table = 'company_dataset'
        managed = True


我的表格:

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'
            ]


settingsLocal

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

在此先感谢您的帮助。 :)

最佳答案

using=关键字参数在模型save()方法上,而不在ModelForm保存方法上。您应该这样做:

...

if request.method == 'POST':
    formCompany2 = CompanyForm2(request.POST, instance=selectedObject)
    selectedObject = formCompany2.save(commit=False)
    selectedObject.save(using='dataset')

...

关于python - save()得到了意外的关键字参数“using”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22596653/

10-09 16:13