Переменная сессии 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.

последний код url

предыдущие данные, идентификатор запроса которых перезаписывается

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