I have the following view code:
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给出激活密钥时,它所做的事情很简单,转到: profile = userprofile....等等。 但是当没有给出密钥时,它会加载django表单,以便用户可以输入其激活代码(到目前为止都正常工作), 但是当用户发布其激活密钥时,它就会进入
if len( actkey ) != 40:
这不应该发生,因为激活密钥是40位的... 但由于它再次显示表单,同时也激活了用户,我得到了不想要的行为...如何解决这个问题?
谢谢帮助。