【发布时间】:2020-11-14 11:41:34
【问题描述】:
我在我的 django 项目中使用了两个数据库:
settings.py
DATABASES = {
"default": {
"ENGINE": "django.db.backends.sqlite3",
"NAME": os.path.join(BASE_DIR, "db.sqlite3"),
},
"2ndDB": {
"ENGINE": "sql_server.pyodbc",
"NAME": "2nddb-sqldb",
"USER": CRED["user"],
"PASSWORD": CRED["password"],
"HOST": "2ndserver-sqlsrv.database.windows.net",
"PORT": 1433,
"OPTIONS": {"driver": "ODBC Driver 17 for SQL Server",},
},
在我看来,我尝试验证我的表单:
views.py
def registration(request):
if request.method == "POST":
form = RegistrationForm(request.POST, user=request.user.get_username())
if form.is_valid():
forms.py
class RegistrationForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
self.helper = FormHelper()
self.helper.form_method = "post"
self.helper.add_input(Submit("submit", "OK"))
class Meta:
model = Registration
fields = (
"uuid",
"xyz",
)
在尝试验证非托管数据库中模型的 pk 的唯一约束时失败:
models.py
class Registration(models.Model):
uuid = models.UUIDField(primary_key=True, verbose_name="UUID")
class Meta:
db_table = "xyz"
managed = False
很漂亮,它试图访问主数据库,但显然找不到表。 (这是我收到的错误。)我知道在保存表单或使用“使用”选项进行查询时如何使用第二个数据库。我不知道如何通过验证来完成这项工作。
【问题讨论】:
-
你是如何设置你的表路由的?
标签: django database django-forms