在非默认数据库上使用login(request,user)函数-Django吗?
@Slf4j
@Component
@RequiredArgsConstructor
public class TopicListener {
private final AvroKafkaMessageConverter messageConverter;
@KafkaListener(topics = {"test-request"})
public void listenForMessage(ConsumerRecord<?, ?> consumerRecord) {
log.info("listenForMessage. got a message: {}", consumerRecord);
Request request = messageConverter.convertFromInternal(
consumerRecord, Request.class, MimeType.valueOf("application/vnd.*+avr"));
log.info("request message: {}", request.getMessage());
}
}
有没有可能
在请求完成之前,请求的会话已被删除。的 例如,用户可能已在并发请求中注销。
user = authenticate(username=username, password=password)
login(request, user)
我创建了一条路线,并且可以完美地与查询配合使用。但使用登录功能(请求,用户)不起作用。
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',
}
}
Middliware
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
整个问题是由于登录(请求,用户)错误导致未注册登录部分
谢谢大家的关注。
答案 0 :(得分:0)
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