Wie kann ich eine E-Mail mit einem Bestätigungslink senden, um darauf zu klicken?

  • models.py:

     class Users(models.Model):
        username = models.CharField(max_length=255)
        slug = models.CharField(max_length=255, default='0')
        password = models.CharField(max_length=300)
        passwordrepeat = models.CharField('Repeat Password', max_length=300)
        password_token = models.CharField(max_length=300, default='0')
        email = models.CharField(max_length=255)
        email_verified = models.BooleanField(default=False)
        email_token = models.CharField(max_length=255)
        email_token_expiry = models.DateTimeField()
        tos = models.BooleanField(default=False)
        active = models.BooleanField(default=False)
        last_login = models.DateTimeField(auto_now_add=True)
        last_action = models.DateTimeField(auto_now_add=True)
        is_admin = models.BooleanField(default=False)
        role = models.CharField(max_length=255, default='0')
        created = models.DateTimeField(auto_now_add=True)
        modified = models.DateTimeField(auto_now_add=True)
    
        def __unicode__(self):
            return self.username
    
    class UsersModelForm(forms.ModelForm):
        class Meta:
            model = Users
            fields = ('username', 'password', 'passwordrepeat', 'email')
            widgets = {
                'password' : PasswordInput(),
                'passwordrepeat' : PasswordInput(),
            }
     

    views.py:

     def register(request):
        flag = True
        possible = '0123456789abcdefghijklmnopqrstuvwxyz'
        token = ''
    
        current_datetime = datetime.datetime.now()
    
        user = UsersModelForm()
        if request.method == 'POST':
            userf = UsersModelForm(request.POST)
            username = userf.data['username']
            password = userf.data['password']
            passwordrepeat = userf.data['passwordrepeat']
            email = userf.data['email']
    
            password = bcrypt.hashpw(password,bcrypt.gensalt())
            passwordrepeat = bcrypt.hashpw(passwordrepeat,bcrypt.gensalt())
    
            userf.data['password'] = password
            userf.data['passwordrepeat'] = passwordrepeat
    
            if password != passwordrepeat:
                flag = False
                passVariable = {'user':user, 'flag': False}
                return render_to_response('register.html', passVariable, context_instance=RequestContext(request))
    
            elif password == passwordrepeat:
                for i in range(1,10):
                    temp = random.choice(possible)
                    token = token + temp
    
                print token
                if userf.is_valid():
                    check = userf.save(commit=False)
                    check.email_token = token
                    check.email_token_expiry = current_datetime + timedelta(1)
                    check.save()
                    return HttpResponseRedirect('/')
        else:
            return render_to_response('register.html', {"user": user, 'flag': True}, context_instance=RequestContext(request))
     

    Nach dem Speichern der Daten in der Tabelle muss ich den Benutzer mit diesem Token senden, um die E-Mail-Adresse für die Registrierung zu bestätigen. Wie kann ich das tun?

    Es wird sehr geschätzt, wenn mir jemand hilft, das Problem zu beheben.

    19 January 2012
    juliomalegriaopensas
2 answers