0
我正在使用Django中的多數據庫設置。一個是用於業務的東西(--database = default),另一個用於存儲用戶信息(--database = users)。下面是應用程序認爲將使用「用戶」數據庫:在Django中使用多個數據庫 - 針對錯誤數據庫的身份驗證
def auth_and_login(request):
global user
post = request.POST
if post['email'] is u'' or post['password'] is u'':
s = 'Please check login input forms'
return render_to_response('insecure.html', {'s': s})
else:
user = authenticate(username=post['email'], password=post['password'])
if user is not None:
login(request, user)
s = 'Logged in ' + user.first_name + ' ' + user.last_name
return render_to_response('loggedin.html', {'s': s})
else:
s = 'Login fails'
return render_to_response('insecure.html', {'s': s})
def create_user(username, email, password):
global user
user = User(username=username, email=email).using('users')
user.set_password(password)
user.save()
return user
def user_exists(username):
user_count = User.objects.using('users').filter(username=username).count()
if user_count == 0:
return False
return True
def sign_up_in(request):
global user
post = request.POST
if post['email'] is u'' or post['password'] is u'':
s = 'Please check sign-up input forms'
return render_to_response('upsecure.html', {'s': s})
else:
if not user_exists(post['email']):
user = create_user(username=post['email'], email=post['email'], password=post['password'])
user.first_name=post['first']
user.last_name=post['last']
user.save()
s = 'Sign Up Successful ' + user.first_name + ' ' + user.last_name
else:
s = 'Existing User'
return render_to_response('upsecure.html', {'s': s})
當用戶註冊時,信息被存儲在正確的數據庫。但是,由於身份驗證是針對其他數據庫的,因此無法使用該信息登錄。我應該怎麼做才能將認證路由到正確的數據庫?
寫自己的AUTHENTICATION_BACKEND和適當的設置中的其他註冊模型在settings.py改變文件 – Crazyshezy