Переменная сессии Django изменяется в пользовательском интерфейсе каждый раз при создании нового request_id
Я хочу, чтобы id запроса отличался в данных каждой страницы, так же как id запроса доступен в approve_url . Индексная функция отправляет сессионную переменную approve_url в тестовую функцию. Вот индексная функция
global j, k, approve_url
@api_view(['POST', 'GET'])
def index(request):
# j = ''
# approve_url = ''
if request.method == "POST":
form = InputForm(request.POST)
if form.is_valid():
form.save()
try:
ids = form.cleaned_data['git_Id']
print(ids)
obj = sql()
query = f""" SELECT request_id FROM request_form_db.request_form_mymodel
where git_Id= '{ids}' ;
"""
print(query)
p = obj.fetch_query(query)
print("Query Result", p)
for i in p:
print("Result[0] : ", i[0])
print("Result : ", p)
i = i[0]
j = i
approve_url = f"http://127.0.0.1:8000/form/test?request_id={i}"
print("Url : ", approve_url)
try:
send_mail(
'KSA Test Activation',
approve_url,
'Noreplygcontrol@airlinq.com',
['sorav.parmar@airlinq.com'],
fail_silently=False,
)
except Exception as e:
print("Error : ", e)
except Exception as e:
print("Error : ", e)
request.session['ids'] = ids
request.session['approve_url'] = approve_url
print('Request ID Sent : ', ids)
print('Approve Url Sent : ', approve_url)
form = InputForm()
else:
form = InputForm()
return render(request, 'home.html', {'form': form})
Вот тестовая функция, в которой approve_url берется из переменной сессии и помещается в UI, но значение res меняется и в предыдущих данных. Оно не такое же, как request_id в approve_url. Последний идентификатор запроса перезаписывается в предыдущих данных.
@api_view(['GET', 'POST'])
def test(request):
ids = request.session.get('ids')
print("Git ID from Index View : ", ids)
if 'approve_url' in request.session:
s = request.session['approve_url']
print(s)
res = s.split('=')[1]
print(res)
if request.method == "POST":
form = TestForm(request.POST)
url = s
url_req = url.split('=')[1]
# rq = request_id["request_id"]
s = sql()
query = f"""update request_form_db.request_form_mymodel
set is_approved=1
where request_id = '{url_req}' """
print(query)
s.update_query(query)
print("Updated Successfully")
form = TestForm()
else:
form = TestForm()
context = {'form': form, 'res': res, }
return render(request, 'test.html', context)
Вот код test.html, где значение res
<form action ="{% url 'test' %}" method="POST">
<div class="form_data">
{% csrf_token %}
<br><br>
{{form.myfield}}
<br><br>
<label><b>Request Id</b></label> {{res}}<br>
<input type="submit" value="Submit" class="btn btn-success" />
Ниже на обоих скриншотах id запроса перезаписывается в предыдущих данных, я хочу, чтобы разные id запроса устанавливались на разные approve_url.
предыдущие данные, идентификатор запроса которых перезаписывается