2016-11-18 3 views
0

Ich bin neu mit Python Django. Ich versuche, eine einfache apps zu erstellen, die Benutzeranmeldung ist und sie mit der Oracle 11g-Datenbank verbindet. Meine Verbindung ist erfolgreich. Mein Problem ist, wenn ich die Benutzerdaten benutze (Benutzer-ID und Passwort). Es leitet mich immer auf ungültige Seite um. Es zeigt auch auf die Auth-Zeilen sagen, dass (Erwartet :) Fehler.Benutzer kann nicht von Oracle-Datenbank (Python Django) authentifiziert werden

Hier ist mein Code

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) 

templates/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> 

Antwort

0

it should be

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

Ich hoffe userid ist Benutzername des Benutzers

+0

noch nicht Sir Arbeits – jned29

+0

@ jned29 dann sind vorbei Sie falsch cridentials? – doniyor

Verwandte Themen