django - Django 中默认 self._db 的值是多少?
问题描述
请看以下代码:
user.save(using=self._db)
Django 的 self._db 的默认值是多少?此值是否默认为我在 settings.py 中为数据库默认指定的值?
我在 Stack Overflow 上发现了一些问题,说这个值将为 Django 提供数据库类型,但如果我从未明确设置它,默认情况下它是什么?
解决方案
Django 默认管理器使用using
参数来定义管理器应该使用哪个数据库进行操作。这将可选地使用。这用于如果您有多个数据库,您可以通过这些数据库定义需要用于操作的数据库。
一个示例user.save(using=self._db)
通常在settings.py
. 更多信息请点击这里
幕后self._db
设定为None
。如果user.save(using=None)
,那么它将使用default database.
例如,您的数据库配置就像
DATABASES = {
'default': {
'NAME': 'app_data',
'ENGINE': 'django.db.backends.postgresql',
'USER': 'postgres_user',
'PASSWORD': '****'
},
'new_users': {
'NAME': 'user_data',
'ENGINE': 'django.db.backends.mysql',
'USER': 'mysql_user',
'PASSWORD': '****'
}
}
然后如果你想使用默认数据库然后使用user.save(using=self._db)
如果你想使用new_users
数据库然后使用user.save(using="new_users")
推荐阅读
- html - 在Angular中使用overflow-y滚动到容器内的div
- xamarin - Xamarin 自定义计划视图?
- notifications - 获取推送订阅端点 URL 时,我可以只使用 PHP 将通知负载发布到端点 URL 吗?
- javascript - 如何重定向到带有密码的页面,但无法通过 URL 访问该页面?
- sql - 从另一个表中插入值并使用返回值更新原始表
- python - 如何将 pd.DataFrame.rolling.corr() 与 Kendall 的 Tau 或 Spearman 一起使用
- flutter - 我是否总是必须等待“https://google.bintray.com”在停机维护后才能完全运行,然后才能构建我的颤振应用程序?
- node.js - AWS Fargate 服务中的“导致执行用户进程:执行格式错误”
- git - 为本地浅拷贝切换 git 标签/分支
- sapui5 - 如何控制 MasterDetail 应用程序的边距