Передача значения в функцию Django view из шаблона - PullRequest
0 голосов
/ 06 марта 2020
{% for key,value in ls.items %}

    {% if value == "1" %}

        <form id="myForm" action="/data_display/" method="post">
            <input type="hidden" name="date_selected" value= {{ key }}>
            <a href="#" onclick="document.getElementById('myForm').submit();"><font size="+1">{{ key }}</font>><br>available</a>
            {% csrf_token %}
        </form>
    {% else %}

        <p>
         <font> {{key}} </font></br>
         not available
        </p>


    {% endif %}
{% endfor %}

Здесь "ls" - словарь. Я хочу передать «ключ» функции Django просмотров. Значение во входном теге принимает разные значения ключа в течение каждого для l oop, но когда я пропускаю, когда нажимаю на ссылку, оно пропускает только ключ 1-го элемента.

Например, предположим, Мой словарь:

{'2020_01_01': '1', '2020_01_02': '1', '2020_01_03': '0', '2020_01_04': '1', '2020_01_05': '0', '2020_01_06': '0', '2020_01_07': '0', '2020_01_08': '1', '2020_01_09': '0'}

, поэтому, когда я нажимаю на любую из ссылок, "2020_01_01,2020_01_02,2020_01_04,2020_01_08", каждый раз, когда только ключ 2020_01_01 передается в функцию просмотра. Но я хочу, чтобы всякий раз, когда я нажимал на любую другую ссылку, например 2020_01_02, 2020_01_02 передавал функцию просмотра.

Ответы [ 2 ]

0 голосов
/ 06 марта 2020

enter image description here View.py

def index(request):
      ls= {'2020_01_01': '1', '2020_01_02': '1', '2020_01_03': '0', '2020_01_04': '1', '2020_01_05': '0', '2020_01_06': '0', '2020_01_07': '0', '2020_01_08': '1', '2020_01_09': '0'}
      return render(request, 'index.html',context={'ls':ls})

Шаблон (индекс. html) Введите код:

{% for key,value in ls.items %}

{% if value == "1" %}

    <form id="myForm" action="/data_display" method="post">
      {% csrf_token %}
        <input type="hidden" id="date_selected" name="date_selected" value= "{{ key }}">
         <button class="btn btn-default submit" type="submit">Send</button>

    </form>
{% else %}

    <p>
     <font> {{key}} </font></br>
     not available
    </p>


{% endif %}{% endfor %}

@ Меха Парех, он будет вернуть все результаты, потому что значение отсутствует None

0 голосов
/ 06 марта 2020

Если вы берете int в значениях dict, вам не нужно явно сравнивать и использовать больше pythoni c, просто попробуйте это:

{% for key,value in ls.items %}

{% if value %}

    <form id="myForm" action="/data_display/" method="post">
        <input type="hidden" name="date_selected" value= {{ key }}>
        <a href="#" onclick="document.getElementById('myForm').submit();">{{ key }} available</a>
        {% csrf_token %}
    </form>
{% else %}

    <p>
     <font> {{key}} </font></br>
     not available
    </p>


{% endif %}

{% endfor%}

Я надеюсь, что это работает!

...