2016-10-25 61 views
0

我使用此代碼作爲登錄表單。但是,發佈此請求的工作不會發生此錯誤:視圖manager.views.Login沒有返回HttpResponse對象。它返回None而不是

ValueError at/home/login/ 視圖manager.views.Login未返回HttpResponse對象。它返回None而不是。

Views.py

class Login(View): 
form = LoginForm 
template_name = 'login.html' 

def get(self, request): 
    form = self.form(None) 
    return render(request, self.template_name, {'form': form}) 

def post(self, request): 
    form = self.form(request.POST) 

    if form.is_valid(): 
     username = form.cleaned_data['username'] 
     password = form.cleaned_data['password'] 

     auth_user = authenticate(username=username, password=password) 
     if auth_user is not None: 
      if auth_user.is_active: 
       login(request, auth_user) 
       return render(request, 'home.html') 

     else: 
      template_name = 'invalid_login.html' 
      return render(request, template_name) 

urls.py

from django.conf.urls import include, url 
from .views import register,home, contact, contactList, Login, Logout 

app_name = 'manager' 

urlpatterns = [ 
url(r'^$', home.as_view(), name='home'), 

#REGISTRATION 
url(r'^register/$', register.as_view() , name='register'), 
url(r'^login/$', Login.as_view() , name='login'), 
url(r'^logout/$', Logout , name='logout'), 

] 

的login.html

<form action="" method="POST"> 
{% csrf_token %} 
{{form.as_p}} 
<button type="submit">SUBMIT</button> 
</form> 

的完整代碼是在Github任何進一步的參考:GITHUB Error

回答

1

當窗體無效即if form.is_valid()分支沒有被採用,您的視圖返回None

可以返回從視圖來處理這個的post方法的默認響應:

def post(self, request): 
    form = self.form(request.POST) 

    if form.is_valid(): 
     ... 

    return render(request, self.template_name, {'form': form}) 

您還需要更新您的模板來正確顯示錶單錯誤。

+0

我這樣做的錯誤是走了,但即時通訊unbale在 – Rasik

+0

這是登錄用戶,因爲形式是無效的,因此用戶憑據從未認證 –

+0

因此如何將我那種出 – Rasik

相關問題