2013-05-07 107 views
3

我試圖編寫我自己的django登錄頁面。 Eveything沒問題,直到我嘗試登錄,我只是重定向回主登錄視圖。Django身份驗證(自定義登錄頁面)

模板

{% extends "bdayremind-maininput.html" %} 
    {% block main %} 

    <form class="form-horizontal" name="LoginForm" action="/login/" method="post"> 
    {% csrf_token %} 
    {% if next %} 
     <input type="hidden" name="next" value="{{ next }}" /> 
    {% endif %} 
    <div class="control-group"> 
    <label class="control-label" for="username">Username</label> 
     <div class="controls"> 
      <input type="text" id="username" value="{{username}}" placeholder="Username"> 
     </div> 
    </div> 
    <div class="control-group"> 
     <label class="control-label" for="password">Password</label> 
      <div class="controls"> 
       <input type="password" name="password" id="password" placeholder="Password"> 
      </div> 
    </div> 
    <div class="control-group"> 
     <div class="controls"> 
      <button type="submit" class="btn">Login</button> 
     </div> 
    </div> 
    </form> 
    {% endblock %} 

URLS

urlpatterns = patterns('', 
    url(r'^bdayremind_maininput/$', 'birthdayreminder.views.main'), 
    # login/logout 
    (r'^login/$', 'birthdayreminder.views.login_user'), 
    #(r'^logout/$', logout_page), 
) 

VIEWS

import datetime 
from django.http import * 
from django.shortcuts import render_to_response 
from django.template import RequestContext 
from birthdayreminder.models import * 
from django.contrib.auth.decorators import login_required 
from django.contrib.auth import authenticate, login 

def login_user(request): 
    username = password = '' 
    if request.POST: 
     username = request.POST.get('username') 
     password = request.POST.get('password') 

     user = authenticate(username=username, password=password) 
     if user is not None: 
      if user.is_active: 
       login(request, user) 
       return HttpResponseRedirect('birthdayreminder.views.main') 

    return render_to_response('login.html',{'username': username}, context_instance=RequestContext(request)) 



@login_required(login_url='/login/') 
def main(request): 
........ 

什麼想法?

+0

問題用重定向更新。雖然我仍然有同樣的問題。 – felix001 2013-05-08 13:08:16

+0

我發現您要爲模板中的下一頁重定向做準備,但無論「next」的值如何,您的視圖都會重定向到一個視圖。 – Travis 2015-06-01 17:27:03

回答

1

您忘記了在登錄後將重定向添加到所需的頁面。

+0

應該在「if user.is_active:」之後進行重定向嗎? – felix001 2013-05-07 20:59:48

+0

你應該用重定向替換你的state =「...」。 – Yossi 2013-05-07 21:00:47

+0

只是試圖通過改變該行......「返回重定向('birthdayreminder.views.main')」但同樣的問題(??) – felix001 2013-05-07 21:02:52