Wie kann ich die Datenbank angeben, die verwendet wird, wenn ein ModelForm
seine Daten speichert?Verwenden Sie eine bestimmte Datenbank mit einem ModelForm
Die multiple-database support in Django bedeutet, dass ich mehr Datenbanken als nur die default
definieren kann. Zum Beispiel:
from django import models
class Foo(models.Model):
# …
queryset = Foo.objects.using('staging').all()
A ModelForm
Unterklasse auch mit der Datenbank interagiert:
from django import forms
from .models import Foo
class FooImportForm(forms.ModelForm):
class Meta:
model = Foo
fields = [
# …
]
fields = {
# …
}
form = FooImportForm(fields)
form.save()
Wie kann ich
# settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': ':memory:',
},
},
'staging': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'HOST': 'db.example.com',
# …
},
}
Dies ist ein Modell-Manager eine andere Datenbank aus dem Standard abfragen kann geben Sie an, dass die FooModelForm
Instanz die staging
Datenbank verwenden soll, wenn ich form.save()
? Ich kann keinen Ort sehen, an dem das Äquivalent von using('staging')
angegeben werden kann.