Реализация функции по нажанию на кнопку Django
У меня есть следующая проблема: я хочу кликнуть на кнопку и этим действием выслать електронное письмо и вернуться например на домашнюю страницу. Только мое решени сразу же высылает письмо, без ожидания нажатия.
<div class="col-4">
<a class="btn btn-warning" href="{% url 'home' %}" role="button">Save and Back</a>
{{ request | mail}}
</div>
В home я наверное не могу запихнуть filter tag, так ка уже использую этот вид в другом месте. Как можно это реализовать. Пробовал что-то в таком роде: <a class="btn btn-warning" href="{% url 'team_gpds' %}?{{ request | mail}}" role="button">Save and Send</a> но это работает идентично.
my view.py
@login_required(login_url='login')
def home(request):
# logined user block
user = get_user(request)
user_gpds = get_user_gpd(user)
context ={'user':user, 'user_gpds':user_gpds, 'is_manager':log_user_is_manager(request)}
return render(request, 'app/home_page/home_page.html', context)
my filter tag:
import re
from django import template
from django.core.mail import send_mail
register = template.Library()
from django.template.loader import render_to_string
@register.filter
def mail(request):
msg_plain = render_to_string('app/team_gpds/email.txt', {'request': request})
return send_mail(
'System Notification: Please accept GPD',
msg_plain,
'.......',
['....@....',],
fail_silently=False,
)
my email.txt:
Follow the White Rabbit:
{{ request.scheme }}://{{ request.get_host }}{% url 'home' %}
my url.py:
path('home/', views.home, name="home"),
В мой filter tag я буду передавать не только request, а и еще один параметр.