首页 > 解决方案 > Django 中默认 self._db 的值是多少?

问题描述

请看以下代码: user.save(using=self._db) Django 的 self._db 的默认值是多少?此值是否默认为我在 settings.py 中为数据库默认指定的值?

我在 Stack Overflow 上发现了一些问题,说这个值将为 Django 提供数据库类型,但如果我从未明确设置它,默认情况下它是什么?

标签: djangodjango-modelsdjango-2.2

解决方案


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")


推荐阅读