Перенаправление пользователя на ту же страницу после POST

Я создаю инструмент для организации турниров, но столкнулся с проблемой.

У меня есть представление под названием index (в настоящее время это единственное представление), которое показывает таблицу лидеров турнира, а также таблицу незавершенных матчей и таблицу завершенных матчей. Для каждого из незавершенных матчей я добавил поле ввода для каждого игрока, в которое пользователь может вводить результаты. Каждый матч также имеет кнопку отправки. Я хочу, чтобы при нажатии на кнопку отправки матч был завершен, а результат матча (оценки в полях ввода) был сохранен в базе данных. Затем я хочу, чтобы пользователь снова увидел ту же страницу (с переходом матча из незавершенного в завершенный). Проблема заключается в том, чтобы перенаправить игрока на ту же страницу. Я пробовал искать похожие вопросы и ответы на них и попробовал несколько разных вещей, например

if request.method == "POST":
    return render(request, './')

или

if request.method == "POST":
    return redirect(request.path)

или

if request.method == "POST":
    return index(request)

все они перенаправляют меня на /index.html, который не существует - мои urlpatterns выглядят следующим образом

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.index, name='index'),
    ]

Мне бы очень пригодилась помощь в определении того, что я делаю неправильно. Заранее спасибо

Вы можете использовать redirect() с атрибутом name, установленным на url, например:

if request.method == "POST":
     return redirect("index") # or -> return redirect("/")

Однако, если вы используете app_name, вы хотите сказать:

if request.method == "POST":
     return redirect("app_name:index")

Я не уверен, что наличие return statement внутри блока if request.method == "POST":; переход на ту же страницу имеет смысл в данном случае, поскольку вы хотите, чтобы пользователь оставался на той же странице. Я предполагаю, что у вас уже есть return statement за пределами блока if request.method == "POST":. Почему бы не использовать только его для этого вида?

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