Выполнение представления Django и перенаправление на другое представление как request.POST

Когда я обращаюсь к своей веб-странице, скажем, example.com, этот url ассоциируется с моим index view.

def index(request, pid):
    context = {}
    context['nbar'] = 'index'
    if request.method == 'POST':
        User = get_user_model()
        users = User.objects.all()
        context['users'] = users
        context['project_values'] = Project.objects.get(id=pid)
    return render(request, 'index.html', context)

Внутри моего шаблона (index.html) есть кнопка, которая просто изменяет состояние определенного проекта Active <-> Inactive

Если пользователь нажимает на кнопку, я хочу, чтобы представление activate_project или deactivate_project выполнялось в фоновом режиме и по завершении выполнения просто перезагружало index.html как post.REQUEST .

Что я пробовал: Activate - Deactivate views:

def activate_project(request, pk):
    if request.method == 'POST':
        project_to_activate = ITT.objects.get(pk=pk)
        if project_to_activate.status == "Inactive":
            project_to_activate.status = "Active"
            project_to_activate.save()
            return redirect('/index/'+str(project_to_activate.id)+'/')

def deactivate_project(request, pk):
    if request.method == 'POST':
        project_to_deactivate = ITT.objects.get(pk=pk)
        if project_to_deactivate.status == "Active":
            project_to_deactivate.status = "Inactive"
            project_to_deactivate.save()
            return redirect('/index/'+str(project_to_deactivate.id)+'/')

Проблема возникает здесь: return redirect('/index/'+str(project_to_deactivate.id)+'/')

Если я использую перенаправление, то оно рассматривается как GET вместо POST.

<WSGIRequest: GET '/index/5/'>

Короче говоря, мне нужно, чтобы index знал, что я иду из deactivate_project или activate_project, как я могу сделать представление index достаточно умным, чтобы знать это?

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