Я учусь отправлять письма с django, но я столкнулся с этой проблемой, потому что он возвращает http://example.com/
вместо http://127.0.0.1:8000/
Код, который отправляет почту и генерирует ссылку, следующий (Я добавил комментарии к двум строкам, которые, как я подозреваю, являются причиной):
views.py
# Send activation E-mail
current_site = get_current_site(self.request) # Either this line
mail_subject = 'Activate your Penge account.'
message = render_to_string('emails/activation-mail.html', {
'user': user,
'domain': current_site.domain, # or maybe this line
'uid': urlsafe_base64_encode(force_bytes(user.pk)),
'token': default_token_generator.make_token(user),
})
to_email = form.cleaned_data.get('email')
email = EmailMessage(
mail_subject, message, to=[to_email]
)
email.send()
return HttpResponse('Please confirm your email address')
activation-mail.html
{% autoescape off %}
Hi {{ user.username }},
Please click on the link to confirm your registration,
http://{{ domain }}{% url 'accounts:activate' uidb64=uid token=token %}
If you think, it's not you, then please ignore this email.
{% endautoescape %}
Как мне исправить это, поскольку функция должна получить домен с использованием. В идеале я мог бы определить это в settings.py
, когда я развертываю свое приложение.
Заранее спасибо.
ИЗМЕНИТЬ! Добавлен шаблон письма