using multi db in Django - authentication directed to wrong database -
i working multi database setting in django. 1 business stuff (--database=default), , other 1 stores user information (--database=users). below view app using 'users' database:
def auth_and_login(request): global user post = request.post if post['email'] u'' or post['password'] 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 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'] u'' or post['password'] 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 successful ' + user.first_name + ' ' + user.last_name else: s = 'existing user' return render_to_response('upsecure.html', {'s': s})
when user signs up, information stored in correct database. however, not possible log in information because authentication directed other database. should make authentication routed right database?
if you've set auth router auth calls can specify database other signup model within auth router
if model._meta.app_label == 'signup/whatever': return 'name_of_auth_db'
Comments
Post a Comment