如何在ModelForm
保存其数据时指定要使用的数据库?在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()
哪有我指定FooModelForm
实例应该使用staging
数据库,当我form.save()
?我看不到一个地方在哪里指定相当于using('staging')
。