Поведение кнопки в шаблоне 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 также на стороне клиента.

Вернуться на верх