【问题标题】:How to populate table after button click in django template?在 django 模板中单击按钮后如何填充表格?
【发布时间】:2025-12-24 11:25:10
【问题描述】:

1) 我想使用 DTL 从字典的输入字段中插入值。 这是加载页面上的代码的sn-p,使表中的该代码标签不可见(可能是因为if条件变为False),但在从字典提交数据后,在同一标签中显示插入的值。

我怎样才能让它工作并且在页面加载时保持所有 td 标签可见?

2) 另外,由于我的 data.items 有 6 个键,所以它迭代了 6 次,我只想获得一次。

我知道我不是很清楚,但很抱歉我不能发布整个代码,因为它太大而且保密。 请帮忙,我是 django 的新手。谢谢。

....
...
..
      {% for key, value in data.items %}
      {% for key2,value2 in value.items %}
      <tr class="info">
        <td>1</td>

        <td>Cholesterol -HDL</td>
        <td>
        {% if value2.test_name == "Cholesterol -HDL" %}
        <div class="form-group">
          <input type="text" class="form-control" name="cholesterol_hdl_result" value="{{ value2.results }}">
        </div>
      </td>
        <td><div class="form-group">
          <input type="text" class="form-control" name="cholesterol_hdl_uom" value="{{ value2.units }}">
        </div></td>
        <td><div class="form-group">
          <input type="text" class="form-control" value="40.00" name="cholesterol_hdl_lr">
        </div></td>
        <td><div class="form-group">
          <input type="text" class="form-control" value="60.00" name="cholesterol_hdl_hr">
        </div></td>
        {% endif %}
      </tr>
        {% endfor %}

{% endfor %}
..
...
....

【问题讨论】:

  • 这意味着,在页面加载时你想得到一个空表,当你在页面加载时传递 dict 你想填充那个表,对吧?
  • 是的,没错! :)

标签: python django python-3.x django-rest-framework django-templates


【解决方案1】:

因此,当字典为空时,您必须检查 ifelse 条件并在 else 块中写入 &lt;td&gt; 标记,如下所示...

{% if data %}

    ......
    ......
    {% for key, value in data.items %}
          {% for key2,value2 in value.items %}
              ....
              ....

          {% endfor %}
    {% endfor %}

{% else %}

    # write your default <td> tag here which is shown when there is empty data dictionary

{% endif %}

只有在你必须使用 django 模板的forloop.first 时才进行 for 循环,如下所示...

{% for key, value in data.items %}
    {% if forloop.first %}
        {% for key2,value2 in value.items %}
            ....
            ....

        {% endfor %}
    {% endif %}  
{% endfor %}

【讨论】:

  • 永远,快乐编码:)
  • 这里再查询一个,如果data.items不包含迭代前if条件中检查的项目,它也没有提供输入框。但是,我想要输入框原样。谢谢。
  • 根据&lt;td&gt; 标签,您可以在else 块中写入&lt;input&gt; 标签。但是你必须在那里维护''标签cz的value属性,你将没有任何字典来填充value字段。所以,你必须将值设为空,可能是。
  • 嘿,@MK 帕特尔!!你能回答我这个问题吗? *.com/questions/60734026/…