Поведение кнопки в шаблоне django (href + функция)
У меня следующая проблема:
<div class="col-4">
<a class="btn btn-warning" href="{% url 'home' %}" role="button">Save and Back</a>
{{ request | mail}}
</div>
Логика следующая: Я хочу нажать на кнопку и отправить письмо с перенаправлением на главную страницу. Мой mail является тегом фильтра. К сожалению, я не могу добавить свой фильтр в представление, потому что я использую это представление в другом месте, где я не хочу отправлять письмо. Мое текущее решение - отправлять письмо до нажатия на кнопку. Есть ли у вас какие-нибудь идеи?
Решение 1:
Вы можете удалить свой фильтр и добавить его в представление, пока проверяете предыдущий url
@login_required(login_url='login')
def home(request):
previous_url = request.META.get('HTTP_REFERER')
save_btn_url = reverse('foo:bar') # replace foo and bar yours
if save_btn_url in previous_url:
msg_plain = render_to_string('app/team_gpds/email.txt', {'request': request})
send_mail(... # your arguments)
# 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)
Решение 2:
если вы знакомы с Ajax, вы можете написать представление на стороне сервера и javascript script также на стороне клиента.