Как я могу получить доступ к обновленной переменной шаблона в разных тегах

Как я могу использовать обновленную переменную в разных тегах в шаблонах django. Я использую python 3.10.x и django 4.0.4. Вот код моего шаблона. Я хочу использовать переменную qn в части {% else %} (после обновления). А для обновления я написал пользовательский тег.

{% extends 'base.html' %}
{% load static %}
{% load custom_tags %}

{% block style %}

{% endblock %}

{% block content %}
    <h1>Test</h1>
    {% if arr %}
        <form action="#" style="margin-left:10%;" >
            {% for line in arr %}
            {% with qn=line.0 %}
                    <div class="form-check">
                        {% if line.0 not in "a, b, c, d" %}
                            <h4> {{line}} </h4>
                            {% update qn as line.0 %}
                            ques{{qn}}
                        {% else %}
                            <input class="form-check-input" type="radio" name="ques{{qn}}" value="{{line}}" style="margin-left:2%; margin-right:1%;">
                            <label class="form-check-label" for="ques"> {{line}} </label>
                        {% endif %}
                    </div>
            {% endwith %}
            {% endfor %}
            <button type="submit" class="btn btn-primary" style="margin-top:3%;"> Submit Test </button>
        </form>
    {% else %}
        No Data
    {% endif %}
{% endblock %}

Вот код пользовательского тега

from atexit import register
from django import template
import datetime

register = template.Library()

@register.simple_tag
def update(val):
    data=val
    return data

Переменная qn работает нормально, если я использую ее в {% if line.0 not in "a, b, c, d" %} после обновления {% update qn as line.0 %}. Но в {% else %} она выдает значение, когда она была объявлена первой, т.е. {% with qn=line.0 %}. Как я могу получить желаемое значение. Пожалуйста, помогите мне избавиться от этой проблемы. Пожалуйста, дайте мне знать, если требуется какая-либо другая информация. Заранее спасибо.

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