![](/img/trans.png)
[英]django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value
[英]django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. router.py given
我知道 settings.DATABASES 已正確配置,因為我已經創建了模型,然后 Django 用於在數據庫中創建表,但無論出於何種原因,它現在都會導致此錯誤。 您還可以看到我已經“提供了 ENGINE 值”。 和 router.py 第一個數據庫客戶我在 makemigration 命令期間沒有收到任何錯誤並成功在數據庫中創建表
DATABASES ={
'default': {},
'users':{
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'customer',
'USER': 'postgres',
'PASSWORD': '123',
},
'listings':{
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'listing',
'USER': 'postgres',
'PASSWORD': '123',
},
}
DATABASE_ROUTERS = ['customer.router.AuthRouter', 'list.router.ListingRouter']
class ListingRouter:
route_app_labels = {'listing'}
def db_for_read(self, model, **hints):
if model._meta.app_label in self.route_app_labels:
return 'listings'
return None
def db_for_write(self, model, **hints):
if model._meta.app_label in self.route_app_labels:
return 'listings'
return None
def allow_relation(self, obj1, obj2, **hints):
if (obj1._meta.app_label in self.route_app_labels or
obj2._meta.app_label in self.route_app_labels
):
return True
return None
def allow_migrate(self, db, app_label, model_name=None, **hints):
if app_label in self.route_app_labels:
return db == 'listings'
return None
數據庫設置和 router.py 附加 1 2
您還需要為default
數據庫提供一個值,因此:
DATABASES = {
'default': {
'ENGINE': '…',
'NAME': '…',
'USER': '…',
'PASSWORD': '…',
},
'users': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'customer',
'USER': 'postgres',
'PASSWORD': '123',
},
'listings': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'listing',
'USER': 'postgres',
'PASSWORD': '123',
},
}
如果users
是默認值,您可以指定這個:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'customer',
'USER': 'postgres',
'PASSWORD': '123',
},
'listings': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'listing',
'USER': 'postgres',
'PASSWORD': '123',
},
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.