Как передать переменные из одного представления в другое?
В моем html шаблоне у меня есть переменная {{ student.mail}} из контекста в представлении Nr.1. В этом шаблоне у меня также есть кнопка <a class="btn btn-warning" href="{% url 'send_and_home' mail=student.mail %}" role="button">Save and Send</a>. Как отправить эту студенческую почту в представление Nr.2. Первое представление возвращает домашнюю страницу без какой-либо информации. Моя вторая страница также возвращает ту же домашнюю страницу, но внутри есть дополнительная функция для отправки почты. Я не понимаю, как реализовать что-то подобное? Не могли бы вы мне помочь?
мои урлы:
path('home/', views.home, name="home"),
мой 1-й взгляд:
@login_required(login_url='login')
def home(request):
# smth
context = ...
return render(request, 'app/home.html', context)
мой 2-й взгляд:
@login_required(login_url='login')
def send_and_home(request, mail):
# article, text, to for mail() depends on mail var from my template
mail()
context = the same as a view Nr.1
return render(request, 'app/home.html', context)
def mail(request, article, text, to):
return send_mail(
article,
'text',
'........',
[to,],
fail_silently=False,
)
Ок, я просто добавляю новый тег:
import re
from django import template
from django.core.mail import send_mail
register = template.Library()
@register.filter
def mail(address):
return send_mail(
'....',
'Test 2) ',
'.....',
[address,],
fail_silently=False,
)
А затем в шаблоне:
{% load mail %}
....
{{ var | mail }}