Я хочу подтвердить электронную почту для своих подписчиков. Но я не могу создать подтверждающее письмо. В 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