将登录(请求,用户)功能与默认数据库以外的数据库一起使用-Django?
With using login(request, user) function with a database other than default - Django?
使用非默认数据库的登录(请求,用户)函数 - Django?
user = authenticate(username=username, password=password)
login(request, user)
有没有可能
The request's session was deleted before the request completed. The
user may have logged out in a concurrent request, for example.
DATABASES = {
'default':{
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),},
'mw': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': '01_sistema',
'USER': 'root',
'PASSWORD': 'root',
'HOST': 'localhost',
'PORT': '5432',
}
}
我创建了一条路线,它与查询完美配合。但是使用函数登录(请求,用户)不起作用。
class TenantRouter(object):
def db_for_read(self, model, **hints):
return get_thread_local('using_db', 'default')
def db_for_write(self, model, **hints):
return get_thread_local('using_db', 'default')
def allow_relation(self, obj1, obj2, **hints):
return True
def allow_migrate(self, db, app_label, model_name=None, **hints):
return True
中间件
def Multidb(get_response):
def middleware(request):
try:
usuario = request.user
empresa = usuario.empresa
print('0')
except:
empresa = request.GET['empresa']
print('1')
@thread_local(using_db=empresa)
def execute_request(request):
return get_response(request)
response = execute_request(request)
return response
return middleware
整个问题是登录部分没有注册,因为登录(请求,用户)中的错误
谢谢大家的关注。
def tenant_middleware(get_response):
def middleware(request):
host = request.get_host().split(':')[0]
subdomain = host.split('.')[0]
response = get_response(request)
return response
return middleware
def multidb_middleware(get_response):
def middleware(request):
host = request.get_host().split(':')[0]
subdomain = host.split('.')[0]
@thread_local(using_db=subdomain)
def execute_request(request):
return get_response(request)
response = execute_request(request)
return response
return middleware
使用非默认数据库的登录(请求,用户)函数 - Django?
user = authenticate(username=username, password=password)
login(request, user)
有没有可能
The request's session was deleted before the request completed. The user may have logged out in a concurrent request, for example.
DATABASES = {
'default':{
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),},
'mw': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': '01_sistema',
'USER': 'root',
'PASSWORD': 'root',
'HOST': 'localhost',
'PORT': '5432',
}
}
我创建了一条路线,它与查询完美配合。但是使用函数登录(请求,用户)不起作用。
class TenantRouter(object):
def db_for_read(self, model, **hints):
return get_thread_local('using_db', 'default')
def db_for_write(self, model, **hints):
return get_thread_local('using_db', 'default')
def allow_relation(self, obj1, obj2, **hints):
return True
def allow_migrate(self, db, app_label, model_name=None, **hints):
return True
中间件
def Multidb(get_response):
def middleware(request):
try:
usuario = request.user
empresa = usuario.empresa
print('0')
except:
empresa = request.GET['empresa']
print('1')
@thread_local(using_db=empresa)
def execute_request(request):
return get_response(request)
response = execute_request(request)
return response
return middleware
整个问题是登录部分没有注册,因为登录(请求,用户)中的错误
谢谢大家的关注。
def tenant_middleware(get_response):
def middleware(request):
host = request.get_host().split(':')[0]
subdomain = host.split('.')[0]
response = get_response(request)
return response
return middleware
def multidb_middleware(get_response):
def middleware(request):
host = request.get_host().split(':')[0]
subdomain = host.split('.')[0]
@thread_local(using_db=subdomain)
def execute_request(request):
return get_response(request)
response = execute_request(request)
return response
return middleware