0

我正在尝试开发一个送货服务网站,用户可以在其中输入取货和送货地址并在线获取价格。如果价格合适,用户可以点击“下订单”按钮,该按钮将导航到另一个新页面,供用户填写附加信息,重要的是之前输入的提货和送货地址以及价格需要自动显示在某处新页面。

我是 django 和 html 的新手,我试图创建一个更简单的页面来实现相同的目的。现在我可以完成表单填写的第一部分,后端根据用户输入计算并返回计算结果(例如价格)。现在,我想知道如何“导航到另一个将显示两个输入值和计算结果的新页面”

主要的html:

<html>
    <body>
        <form method="POST" hx-post="{% url 'blog:post_list' %}" hx-target="#num_1" hx-target="#num_2" hx-target="#result">
            {% csrf_token %}
            <div>
            <label>num_1:</label>
            <input type="text" name="num_1" value="" placeholder="Enter value" />
            </div>
            <div>
            <label>num_2:</label>
            <input type="text" name="num_2" value="" placeholder="Enter value" />
            </div>

            <br />
            <div id="num_1">{{ num_1 }}</div>
            <br />
            <div id="num_2">{{ num_2 }}</div>
            <br />
            <div id="result">{{ result }}</div>
            <br>
            <button type="submit">Submit</button>
        </form>
        <script src="https://unpkg.com/htmx.org@1.6.1"></script>
    </body>
</html>

子html:

<div>
        <label>first_number:</label>
        <span id="num_1"> {{ num_1 }} </span>
</div>

<div>
        <label>second_number:</label>
        <span id="num_2"> {{ num_2 }} </span>
</div>

<div>
        <label>calculation_result:</label>
        <span id="result"> {{ result }} </span>
</div>

视图.py:

def post_list(request):
    result = ""
    num1 = ""
    num2 = ""
    if request.method == "POST":
        num1 = request.POST.get('num_1')
        num2 = request.POST.get('num_2')
        result = int(num1) + int(num2)

    if request.headers.get('Hx-Request') == 'true':
        # return only the result to be replaced
        # return HttpResponse(str(result))
        return render(request, 'blog/post_list_snippet.html', {'num_1': num1,'num_2': num2,'result': result})
    else:
        return render(request, 'blog/post_list.html', {'num_1': num1,'num_2': num2,'result': result})
4

0 回答 0