我正在嘗試關注用戶登錄的http://docs.djangoproject.com/en/1.1/topics/auth/代碼。Django身份驗證文檔中的MultiValueKeyDict錯誤
def my_view(request):
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
HttpResponseRedirect('/%s/'%username)
else:
#Logic will go here later
pass
else:
# Return an 'invalid login' error message.
pass
我的問題是,當我嘗試使用這一新的觀點,我收到以下錯誤信息: (「預期的縮進塊」('C:\ emodel_tracking \ .. \ emodel_tracking \跟蹤\ views.py',50,4,'else:\ n'))
我看不出else語句的格式是怎麼錯的;我直接從django文檔使用代碼。任何想法「else」聲明有什麼問題?
編輯:OK,使用通固定的錯誤 - 現在我就廢話一下:在/登錄/ MultiValueDictKeyError ---快捷鍵 '用戶名' 中的QueryDict未發現:{}。思考?我不太清楚如何進行 - 我的猜測是,我需要以某種方式配合這類似於這樣一個HTML表單:
{% extends "base.html" %}
{% block content %}
{% if form.errors %}
<p class="error">Sorry, that's not a valid username or password</p>
{% endif %}
<form action="" method="post">
<label for="username">User name:</label>
<input type="text" name="username" value="" id="username">
<label for="password">Password:</label>
<input type="password" name="password" value="" id="password">
<input type="submit" value="login" />
<input type="hidden" name="next" value="{{ next|escape }}" />
</form>
{% endblock %}
如果是這樣的話,我怎麼呈現出形式(如果我沒有弄錯,那麼在我請求表單所要求的信息之前,需要「返還」聲明?
每次遇到新問題時都不應改變您的問題。 – 2010-01-26 22:15:01
這應該是一個新問題,因爲它與前一個無關。 – 2010-01-26 22:31:50