【发布时间】:2016-06-10 05:56:48
【问题描述】:
ModelForm 保存数据时如何指定要使用的数据库?
multiple-database support in Django 意味着我可以定义更多的数据库,而不仅仅是default。例如:
# settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': ':memory:',
},
},
'staging': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'HOST': 'db.example.com',
# …
},
}
这允许模型管理器查询与默认数据库不同的数据库:
from django import models
class Foo(models.Model):
# …
queryset = Foo.objects.using('staging').all()
ModelForm 子类也与数据库交互:
from django import forms
from .models import Foo
class FooImportForm(forms.ModelForm):
class Meta:
model = Foo
fields = [
# …
]
fields = {
# …
}
form = FooImportForm(fields)
form.save()
当我form.save() 时,如何指定FooModelForm 实例应该使用staging 数据库?我看不到指定 using('staging') 等效项的地方。
【问题讨论】:
标签: django django-models django-forms