당신의 의도를 오해 할 수도 있습니다. 그러나 양식이 유효하면 다음과 같이해야한다고 생각합니다.
if form.is_valid():
actkey = request.POST['actkey']
activate( '', actkey )
return render_to_response( 'profile/register.html', { 'message' : message } )
즉. 사용자를 활성화 한 후 양식 개체를 생략하십시오.
-------------------성공적인 양식 제출 후 리디렉션해야합니다.
if request.method == 'POST':
form = ActivateForm( request.POST )
if form.is_valid():
actkey = form.cleaned_data['actkey']#access cleaned_data instead of raw post
activate( '', actkey )
return HttpResponseRedirect('/')
-------------------둘 다 내가 찾고 있던 것이 아니지만 다음과 같이 수정했습니다.
def activate( request = '', actkey = "" ):
message = ""
if len( actkey ) != 40:
if request.method == 'POST':
form = ActivateForm( request.POST )
if form.is_valid():
actkey = request.POST['actkey']
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 } )
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 } )
답장 주셔서 감사합니다 :)
출처
https://stackoverflow.com/questions/2005822