【问题标题】:Python, django: I would like to put objects within the 'input' tag or 'select' tag on form. ..in order to transfer the objects to the booking_formPython,django:我想将对象放在表单上的“输入”标签或“选择”标签内。 ..为了将对象转移到 booking_form
【发布时间】:2021-06-07 12:28:59
【问题描述】:
  1. 用户在价格查询表中输入一些信息并点击计算按钮
  2. 用户被移动到显示价格的页面,其中包含用户在表单中输入的信息
  3. 如果用户对价格感到满意并想继续预订,则有一个预订按钮
  4. 一旦用户点击预订按钮,用户将自动访问预订表格
  5. 在预订单上,用户可以看到之前填写的信息,无需重新填写,填写预订单的其余栏目即可。

--这就是我想要的

到目前为止,我成功完成了第 4 个。我想将用户输入的信息和计算的价格转移到 booking_form。但输入标签不允许 {{ object }} 在标签内。

为了让你更好地理解,我附上了下面的“price_detail.html”。

{% extends 'basecamp/base.html' %}
{% block content %}
    <form action="{% url 'booking_form' %}" method="post">
        {% csrf_token %}
        <div class="container">
            <div class="py-md-6">
                <h1> The price :  $ {{ price }} </h1>
                
                <p class="fs-lg text-light" >{{ flight_date }} | {{ flight_number }} | {{ suburb }} | {{ no_of_passenger }} </p>
                <br/>
                
                <button class="btn btn-warning" type="submit">Book now</button>
            </div>
        </div>
{% endblock %}

我想我需要将我从价格查询表单中获得的对象放入输入标签中,以便将它们转移到 booking_form 但输入标签/选择标签不允许 {{ }} 在标签内。

当用户点击预订按钮时,有没有其他方法可以将这些对象转移到预订表单中?

【问题讨论】:

    标签: python django forms


    【解决方案1】:

    最简单的方法是将项目作为会话放入,然后在表单中从会话中获取初始值,例如,如果用户选择了一家酒店,则添加一个密钥 booking_hotel_name by

      request.session["booking_hotel_name"] = selected_hotel
    

    然后在加载表单的视图中,将这些值收集到首字母字典中,然后在进行构造时将这些值收集到表单中

    编辑:这里有一些解释

    根据django form documentation,表单有一个initials 字典,可以传递它来设置表单字段的初始值,我的想法是从会话中加载这个初始值。所以让我们假设您的表单名为“ConfirmBokking”,并且它有一个名为“hotel_name”的字段,如下所示

    class ConfirmBooking(forms.Form):
        hotel_name = forms.CharField()
    

    如前所示,您将这个添加到会话下的booking_hotel_name,现在当您要在其中初始化表单时,我们执行以下操作

      if request.method == "GET":
          initials = {"hotel_name":request.session.get("booking_hotel_name")}
          form = ConfirmBooking(initials = initials)
    

    我希望现在很清楚。

    【讨论】:

    • 谢谢!但很抱歉,我不明白......如果你能多解释一点,我将不胜感激。
    猜你喜欢
    • 2011-09-28
    • 2020-04-26
    • 1970-01-01
    • 2021-09-27
    • 1970-01-01
    • 1970-01-01
    • 2017-05-09
    • 2011-02-25
    • 1970-01-01
    相关资源
    最近更新 更多