У меня проблема с правильной настройкой промежуточного программного обеспечения и маршрутизаторов для поддержки нескольких баз данных, по одной для каждого языка (я решил разделить их).
Я пытался использовать это решение ,но на данный момент я не особо его использовал.
В моих settings.py базы данных и промежуточное ПО определены следующим образом:
DATABASES = {
'default': {},
'ru': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'db_ru.sqlite3',
},
'en': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'db_en.sqlite3',
}
}
DATABASE_ROUTERS = ['me.middleware.database_routing.DatabaseRouter']
MIDDLEWARE = [
'me.middleware.database_routing.RouterMiddleware',
'django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
database_routing.py используемый в 'me.middleware.database_routing'
полностью соответствует этому промежуточному программному обеспечению .
При запуске сервера возникает ошибка: RouterMiddleware () не принимает аргументов ,Я считаю, что есть некоторый недостаток в отношении кода промежуточного программного обеспечения.Также я не могу перейти на свои базы данных, я получаю ValueError: Cannot assign "<ContentType: ContentType object (1)>": the current database router prevents this relation.
Может быть, есть какое-то другое решение?