-2
我的任務是僅在登錄/註冊後才能獲得主頁視圖。例如,如果我們去example.com,我們應該得到登錄頁面。如果我們之前沒有註冊,然後按登錄按鈕(在輸入任何用戶名和密碼之後,因爲此刻我還沒有完成註冊按鈕)必須在註冊頁面上移動我們。只能通過登錄/註冊才能訪問主頁
下面的代碼是:
views.py:
from django.shortcuts import render, redirect
from django.core.urlresolvers import reverse
from django.contrib.auth import authenticate, login
from django.contrib.auth.forms import AuthenticationForm, UserCreationForm
def my_login(request):
if request.method == 'POST':
form = AuthenticationForm(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
return render(request, 'home.html', {})
else:
# Return a 'disabled account' error message
pass
else:
# send to signup
return render(request, 'signup.html', {})
else:
form = AuthenticationForm()
return render(request, 'login.html', {'form': form})
,這是我的login.html:
{% load staticfiles %}
{% if form.errors %}
<p>Your username and password didn't match. Please try again.</p>
{% endif %}
{% if next %}
{% if user.is_authenticated %}
<p>Your account doesn't have access to this page. To proceed,
please login with an account that has access.</p>
{% else %}
<p>Please login to see this page.</p>
{% endif %}
{% endif %}
<form method="post" action="{% url 'my_login' %}">
{% csrf_token %}
<table>
<tr>
<td>{{ form.username.label_tag }}</td>
<td>{{ form.username }}</td>
</tr>
<tr>
<td>{{ form.password.label_tag }}</td>
<td>{{ form.password }}</td>
</tr>
</table>
<input type="submit" value="Login" />
<input type="hidden" name="next" value="{{ next }}" />
</form>
目前所顯示的故障(hiting登錄按鈕後) -
ValueError at/login/ 視圖evr.views.my_login沒有返回HttpResponse對象。它返回None而不是。
但重點不僅僅是關於這個錯誤。如果我的方向是正確的,我一般都不明白?
由於錯誤是在你的登錄視圖,你或許應該表現出來,你不牛逼hink? –
尋求調試幫助的問題(「爲什麼不是這個代碼工作?」)必須包含所需的行爲,特定的問題或錯誤以及在問題本身**中重現**所需的最短代碼。沒有明確問題陳述的問題對其他讀者無益。請參閱:[mcve] – Sayse
我把我的代碼放在http://pastebin.com/e5LCJmgH ..還是僅在此處放置代碼? – Dennis