title: Send email confirmation after registration django
body: <p>Im sending an email confirmation after a registration process in my django application. I need to find out for security reasons how can i validate the code im sending in the url without adding a new code field in the user model. So far im sending a random code in the url and the username which is validated but not the code.</p>
  
  <h1>Registration VIEW</h1>
  
  <pre><code>def registrar_usuario_view(request):
  alphabet = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
  code = ''.join(random.choice(alphabet) for i in range(16))
  print code
  if request.method == 'POST':
      f = RegisterForm(request.POST)
      if f.is_valid():
          usuario = f.cleaned_data['usuario']
          email = f.cleaned_data['email']
          clave = f.cleaned_data['clave']
          confirmar_clave = f.cleaned_data['confirmar_clave']
          captcha = f.cleaned_data['captcha']
          u = User.objects.create_user(username = usuario, email = email, password = clave)
          u.is_active = False
          u.save()
          # Mandamos mail de activacion
          to = email
          html_content = """&lt;h3&gt;Bienvenido Sr/a: %s &lt;/h3&gt;&lt;p&gt;Para confirmar su registro en el sitio Margonari Servicios Inmobiliarios le solicitamos haga click en el siguiente 
          &lt;a href='http://localhost:8000/confirmacion/%s/%s'&gt;enlace de confirmacion&lt;/a&gt;&lt;br&gt;&lt;p&gt;&lt;b&gt;Gracias por formar parte de Margonari Servicios Inmobiliarios.&lt;/b&gt;&lt;/p&gt;&lt;br&gt;
          &lt;small&gt;Este es un mensaje enviado automaticamente. Por favor no responda a esta direccion de mail.&lt;/small&gt;"""%(usuario, code, usuario)
          msg = EmailMultiAlternatives('Administracion Margonari', html_content, 'from@server.com', [to])
          msg.attach_alternative(html_content, 'text/html') #Definimos el contenido como html
          msg.send() #Enviamos el correo
  
          messages.add_message(request, messages.SUCCESS, """Los datos han sido ingresados correctamente. Le enviamos un correo de confirmacion 
              a la direccion que nos proporciono. Por favor verifique su casilla de correo no deseado. Muchas gracias.""")
          ctx = {'form':f}
          return render_to_response('users/registrar_usuario.html', ctx, context_instance = RequestContext(request))
      else:
          ctx = {'form':f}
          return render_to_response('users/registrar_usuario.html', ctx, context_instance = RequestContext(request))
  
  f = RegisterForm()
  ctx = {'form':f}
  return render_to_response('users/registrar_usuario.html', ctx, context_instance =    RequestContext(request))
  </code></pre>
  
  <h1>Confirmation VIEW</h1>
  
  <pre><code>def confirmacion_view(request, code, user):
  user = User.objects.get(username = user)
  user.is_active = True
  user.save()
  return HttpResponseRedirect('/')
  </code></pre>
  
  <h1>URL</h1>
  
  <pre><code>url(r'^confirmacion/(?P&lt;code&gt;.*)/(?P&lt;user&gt;.*)/$', 'confirmacion_view', name = 'vista_confirmacion'),
  </code></pre>