首页 > 解决方案 > 从模板向 Django 视图函数传递值

问题描述

{% 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 视图函数。输入标记中的值在每个 for 循环期间确实采用不同的键值,但是当我单击链接时通过时,它只传递第一个元素的键。

例如,假设我的字典是:

{'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 都应该传递视图功能。

标签: djangodjango-modelsdjango-formsdjango-viewsdjango-templates

解决方案


如果您在 dict 值中采用 int ,则无需显式比较并使用更多pythonic方式,只需尝试以下操作:

{% 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 %}

我希望这行得通!


推荐阅读