首页 > 解决方案 > 使用django提交表单后如何使输入表单中的值不消失

问题描述

我有一个可变尺寸的 html 表格,其中每个单元格都是

<input type = "number">

在用户填写完每个单元格并按下提交后,一些计算的结果应该打印在h2标签中。正如预测的那样,每次用户按下提交时,表中写入的内容都会被删除。是否有可能在某种程度上否定这一点,以便在用户按下提交后他得到结果输出但他在表格中的输入保持在原来的位置?这是所有这一切都发生的模板的 html:

{% extends "base.html" %}

{% block content %}

    <h2> Dimensions: {{ f_number }} X {{ s_number }} </h2>

    <form method = "post" action="/calculated/">{% csrf_token %} 
        <table style = "border: 1px solid black;" border = 1>


        {% for i in range_first %}

            <tr>
            {% for j in range_second %}
                    <td> <input type = "number" name = "{{ i }}{{ j }}"> </td>
            {% endfor %}
            </tr>

        {% endfor %}
        </table>

        <input type = "Submit" value = "Calculate" name = "calc">

        {% if result %}
            <h2> The result is: {{ result }}. </h2>
        {% endif %}


    </form>


{% endblock content %} 

这是我的视图功能:

def calculate(request):
    if request.method == 'POST':

        content = request.POST.dict()
        stuff = calculator.MatrixCalculator(content)

        dimensions = stuff.dimensions_to_normal_form()
        array_numbers = stuff.numbers_to_normal_form()

        range_first = range(dimensions[0] + 1)
        range_second = range(dimensions[1] + 1)


        result = stuff.Rank(array_numbers, dimensions)


        return render(request, 'enter_number.html', {'result': result, 
        'f_number': dimensions[0] + 1, 's_number': dimensions[1] + 1, 
        'range_first': range_first, 'range_second': range_second})

标签: pythonhtmldjangopython-3.xdjango-templates

解决方案


推荐阅读