後,我有以下看法代碼:Django的形式:重裝查看後
def activate(request = '', actkey = ""):
message = ""
if len(actkey) != 40:
message += str(len(actkey))
if request.method == 'POST':
form = ActivateForm(request.POST)
if form.is_valid():
actkey = request.POST['actkey']
activate('', actkey)
else:
form = ActivateForm()
else:
profile = userprofile.objects.get(actkey = actkey)
user = User.objects.get(id = profile.user_id)
user.is_active = True
user.save()
profile.actkey = ""
profile.save()
message += "Uw account is succesvol geactiveerd."
return render_to_response('profile/register.html', { 'message' : message })
return render_to_response('profile/register.html', { 'message' : message, 'form' : form })
它的作用很簡單,當激活密鑰是通過URL給出,它進入: 配置= USERPROFILE .. ..等 但是,當它沒有給它加載Django的形式,所以用戶可以鍵入它的激活碼(到目前爲止都效果很好) 但是,當用戶發佈他的激活密鑰時,它出現在if len(actkey) != 40:
這不應該發生因爲激活碼是40 ...但由於它再次顯示窗體,但激活用戶以及我得到不想要的行爲...
我該如何解決這個問題?
感謝您的幫助
這個函數在render()的引入之前,並且類似地工作,只是它沒有使得請求在響應中可用。這不被推薦,將來可能會被棄用。檢查文檔:https://docs.djangoproject.com/en/1.11/topics/http/shortcuts/ – Ralphkay 2017-08-28 09:18:14