Как отчистить post запрос но при этом передать переменные на html страницу в Django
Есть следующий код во views.py:
def mainST(request):
searching = request.POST.get("search") #Получает введенный пользователем текст в поле input
if not searching: #проверяет введенное пользователем значение на наличие текста и если поле пустое, то выдает стандартную страницу без переменных
return render(request, 'main/htmain.html')
else: #Если поле не пустое
# Здесь идет длинный код, по итогу которого мы получаем четыре переменные
el1 = "" #что угодно
el2 = "" #что угодно
el3 = "" #что угодно
el4 = "" #что угодно
return render(request, 'main/htmain.html', {'el1': el1, 'el2': el2, 'el3': el3, 'el4': el4,} #передаем эти переменные в html шаблон
#return HttpResponseRedirect(request.path)
И теперь в чем же и заключается проблема. Благодоря следующему кусочку кода:
return HttpResponseRedirect(request.path)
POST запрос отчищается, но если я ставлю его в конце кода, то переменные не передаются, а если в начале, то и сам POST не доходит до основного кода(который я не указал), ибо введенное пользователем значение стирается до того, как успевает дойти до основного кода. А если не стирать POST и вовсе, то при обновлении пользователем страницы, POST запрос попадает в основной код(а он в свою очередь очень массивный из-за чего невероятно сильно нагружает систему(или же сервер)). А пользователь может сколько угодно раз прообновлять страницу, но при этом предыдущий выполняемый код не остановится.
urls.py:
from django.urls import path
from . import views
urlpatterns = [
path('', views.mainST, name='videosearch'),
]
html:
<form action="" method="POST">
{% csrf_token %}
<input class="searcher" placeholder="Вставьте ссылку" name="search">
</form>