2016-11-18 12 views
0

私はPython djangoで新しくなっています。私はユーザーのログインである単純なアプリケーションを作成し、それをOracle 11gデータベースに接続しようとしています。私の接続は成功です。私の問題は、ユーザーデータ(ユーザーIDとパスワード)を使用するときです。それは常に無効なページに私をリダイレクトします。また、(Expected :)エラーを示す認証行を指しています。oracleデータベース(Python django)からユーザーを認証できません

ここに私のコードは

views.py

from django.http import HttpResponse, HttpResponseRedirect 
from django.template import loader 
from django.contrib import auth 
from django.shortcuts import get_object_or_404, render 
from .models import OnlineUser 

    def login(request): 
    return render(request, 'login.html') 

def auth_view(request): 
    userid = request.POST.get("userid", '') 
    userpass = request.POST.get("userpass", '') 
    user = auth.authenticate(OnlineUser.USERID=userid, OnlineUser.USERPASS=userpass) 
    #user = auth.authenticate(userid=userid, userpass=userpass) 

    if user is not None: 
     auth.login(request, user) 
     return HttpResponseRedirect('/samplesite/loggedin') 
    else: 
     return HttpResponseRedirect('/samplesite/invalid') 

def loggedin(request): 
    user = get_object_or_404(OnlineUser, pk=id) 
    return render(request, 'login.html', {'user': user}) 


def invalid(request): 
    return render(request, 'invalid.html') 

def logout(request): 
    auth.logout(request) 
    return render(request, 'logout.html') 

models.py

from __future__ import unicode_literals 

from django.db import models 

class OnlineUser(models.Model): 
    ID = models.IntegerField(primary_key=True) 
    USERID = models.TextField() 
    USERPASS = models.TextField() 

    class Meta: 
     managed = False 
     db_table= 'TBL_ONLINE_USER' 

    def __str__(self): 
     return str(self.ID) 

テンプレート/ login.htmlと

<div> 
    <form action="/samplesite/auth_view/" method="POST">{% csrf_token %} 
     <input type='text' size='25' name="userid" id="userid" class="form-control" placeholder="User ID"/> 
     <br/> 
     <input type='password' size='25' name="userpass" id="userpass" class="form-control" placeholder="Password"/> 
     <br/> 
     <input type="submit" value="login"/> 
    </form> 
</div> 

答えて

0

it should be

012です
userid = request.POST.get("userid", '') 
userpass = request.POST.get("userpass", '') 
user = authenticate(username=userid, password=userpass) 

私は、あなたが間違ったcridentialsを渡しているuseridは、ユーザーのユーザー名

+0

はまだjned29 @先生 – jned29

+0

が動作していない願っていますか? – doniyor

関連する問題