django создать подтверждающее письмо для подписки - PullRequest
0 голосов
/ 05 мая 2020

Я хочу подтвердить электронную почту для своих подписчиков. Но я не могу создать подтверждающее письмо. В views.py я отправляю электронное письмо, но ссылки для подтверждения нет. Как создать ссылку для подтверждения в этом примере?

models.py

class Subscribe(models.Model):
name = models.CharField(max_length=200,verbose_name="İsim")
email = models.EmailField(max_length=200,verbose_name="E-Mail")
confirmed = models.BooleanField(default=False)

def __str__(self):
    return self.name + " - " + self.email

views.py

def yeniabone(request):
if request.method == 'GET':
    form = SubscribeForm()
else:
    form = SubscribeForm(request.POST)
    if form.is_valid():
        request.session['form-submitted'] = True 
        name = form.cleaned_data['name']
        email = form.cleaned_data['email']
        abone = Subscribe.objects.create(name=name,email=email)
        mymessage = "Merhaba "+name+",\nYazılarıma abone olduğun için teşekkürler. 
Aşağıdaki linkten aboneliğini onaylayıp yazılarımdan en hızlı şekilde haberdar 
olabilirsin.( I WANT TO SHOW CONFİRMATİON LİNK HERE )\n\nCemre ACAR - cemreacar.com"
                try:
                    send_mail("Abone | cemreacar.com",mymessage,'Abonelik | Cemre ACAR <mail@cemreacar.com>',[email],'fail_silently=False')
                except BadHeaderError:
                    return HttpResponse('Bir şeyler ters gitti!')
                return redirect('blog:yeniabone_onay')
        return render(request, "yeniabone.html", {'form': form})

Я редактировал так в views.py

def yeniabone(request):
if request.method == 'GET':
    form = SubscribeForm()
else:
    form = SubscribeForm(request.POST)
    if form.is_valid():
        request.session['form-submitted'] = True 
        name = form.cleaned_data['name']
        email = form.cleaned_data['email']
        try:
            abone = Subscribe.objects.create(name=name,email=email)
            token = default_token_generator.make_token(abone)
            uid = urlsafe_base64_encode(force_bytes(abone.email))
            mymessage = "Merhaba "+name+",\nYazılarıma abone olduğun için teşekkürler. Aşağıdaki linkten aboneliğini onaylayıp yazılarımdan en hızlı şekilde haberdar olabilirsin.\n\nhttp://www.cemreacar.com/subscribe_confirmed/validate/"+uid+"/"+token+"/\n\nCemre ACAR - cemreacar.com"
            send_mail("Abone | cemreacar.com",mymessage,'Abonelik | Cemre ACAR <mail@cemreacar.com>',[email],'fail_silently=False')
        except BadHeaderError:
            return HttpResponse('Birşeyler ters gitti!')
        return redirect('blog:yeniabone_onay')
return render(request, "yeniabone.html", {'form': form})

Но я столкнулся с ошибкой

Объект Subscribe не имеет атрибута last_login

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...