如何以django形式显示依赖的下拉菜单

2024-01-12

在这里,在从模板添加学生费用信息时,如果用户选择某些课程,则只有该所选课程的 basic_price 和 advance_price 应显示在选择费用选项中。我该如何实现这一点?

学生费用.html

     <div class="form-group">
        <h5>Course <span class="text-danger">*</span></h5>
        <div class="controls">
         <select name="course" id="personForm" data-fees-url="{% url 'students:ajax_load_course_fees' %}" required class="form-control">
        <option value="">Select Course</option>
                        {% for course in courses %}
        <option value="{{course.id}}">{{course.title}}</option>
                        {% endfor %}
       </select>
        </div>
       </div>
      <div class="form-group">
        <h5>Total Fee <span class="text-danger">*</span></h5>
            <div class="controls">
             <select name="total_fee" id="select3" required class="form-control">
              <option value="">Select Fee</option>
            </select>
         </div>
       </div>

您需要创建一个新函数,该函数将返回特定于课程的费用,但从 ajax 调用

def ajax_course_fees(request):
    course = Course.objects.get(pk=request.GET.get('course_pk'))
    #generate an html template for the specific option
    return render(request, 'fees_dropdown_list_options.html', {'course': course})

关联模板:

Fees_dropdown_list_options.html

<option value="">Select Fee</option>
<option value="{{course.basic_price}}">{{course.basic_price}}(Basic)</option>
<option value="{{course.advanced_price}}">{{course.advanced_price}}(Advanced)</option>
       

在 urls.py 中添加以下内容:

 path('ajax/load-course-fees/', views.ajax_course_fees, name='ajax_load_course_fees'),

在您的模板中,您需要默认删除费用,它们将从每个课程的 ajax 调用中动态加载

我提供了 Jquery 来进行 ajax 调用。

<select name="course" id="select2" data-fees-url="{% url 'ajax_load_course_fees' %}" required class="form-control">
    <option value="">Select Course</option>
        {% for course in courses %}
            <option value="{{course.id}}">{{course.title}}</option>
        {% endfor %}
</select>
<select name="total_fee" id="select3" required class="form-control">
    <option value="">Select Fee</option>
</select>


 <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
  <script>
    $("#select2").change(function () {
      var url = $("#select2").attr("data-fees-url");  // get the url of the ajax_load_course_fees view
      var course_pk = $(this).val();  // get the selected course pk from the HTML input

      $.ajax({                       // initialize an AJAX request
        url: url,                    // set the url of the request
        data: {
          'course_pk': course_pk       // add the course pk to the GET parameters
        },
        success: function (data) {   // `data` is the return of the `ajax_course_fees` view function
          $("#select3").html(data);  // replace the contents of the fees select with the data that came from the server
        }
      });

    });
  </script>

并为您提供信息:https://simpleisbetterthancomplex.com/tutorial/2018/01/29/how-to-implement-dependent-or-chained-dropdown-list-with-django.html https://simpleisbetterthancomplex.com/tutorial/2018/01/29/how-to-implement-dependent-or-chained-dropdown-list-with-django.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何以django形式显示依赖的下拉菜单 的相关文章

随机推荐

  • ChartJS 轴刻度回调函数中的条件未返回预期的标签

    我有一个包含一年中每一天数据的图表 我想将 x 轴简单地显示为月份 我设置了以下回调函数 它 粗略地 从标签集中获取月份 检查它是否已经存在 如果不存在 则将其作为轴标签返回 let rollingLabel function label
  • 创建一个触发器,在更新列时将值插入到新表中

    我一直在此处查看有关触发器的一些先前答案 但找不到我确切需要的内容 但我确信我的问题之前已被提出 回答过 我正在尝试跟踪表 1 中的列和列的任何更改 如果此值发生变化 我想通过将现有值和新值插入到带有日期的不同表中来跟踪这些值 我一直在考虑
  • C# 更改文本框中一个字符的颜色

    C WPF 如何仅更改文本框中一个字符的颜色 示例 Word Hello H 的颜色变为红色 您不能使用文本框执行此操作 但可以使用 Richtextbox WPF RichTextBox 教程 http www c sharpcorner
  • 如何从 DataGrid 获取单元格?

    我有一个 DataGrid net Framework 3 5 WPFToolKit 我想更改某些单元格的边框 左或右 一个 两个或三个 那么我怎样才能访问单个单元呢 这可能吗 我找到了一些解决方案 但它们适用于 net 4 您可以扩展 D
  • 在 C++11 中指定成员函数作为回调

    我有以下内容 typedef std function
  • unregisterForRemoteNotifications 仍然在“设置”中显示“允许通知”

    我正在创建一个设置页面 允许用户打开和关闭推送通知 这是我的问题 如果用户在初始系统提示时允许推送通知 然后改变主意并将 UISwitch 设置为 否 则我的关闭开关操作为 UIApplication共享应用程序 unregisterFor
  • ListFragment / CursorAdapter 显示为空(无数据)

    我无法让列表视图显示我的数据 它只显示空 无数据文本视图 我已经尝试解决这个问题有一段时间了 搜索了 stackoverflow 和网络 尝试了很多不同的事情 Logcat 显示我的 newView bindView 没有被调用 到达 我认
  • 如何在Python中显示列表元素的索引? [复制]

    这个问题在这里已经有答案了 我有以下代码 hey lol hey water pepsi jam for item in hey print item 我是否在项目之前显示列表中的位置 如下所示 1 lol 2 hey 3 water 4
  • 自动完成文本视图设置错误

    密码字段是AutoCompleteTextView我正在尝试做setError当它为空时 但我不想显示这个红色感叹号 我该怎么做 附 在此之上的字段 也是AutoCompleteTextView mailview 但是当我这样做时setEr
  • notepad++正则表达式如何从此列表中提取userId

    我有下面这个列表 originalscrape scrapeDate userId username full name is private follower count following count media count biogr
  • 标签栏按钮全灰

    我正在尝试创建一个选项卡栏控制器 但上次我是使用 iOS 6 1 进行的 但是现在 当我将选项卡栏控制器放在情节提要上时 它不会显示按钮 并且我尝试对背景和文本进行的任何修改都不会出现 有人知道我该如何修复它吗 下面是所描述问题的图像 Th
  • 向量化矩阵各行的运算

    我想矢量化 apply a which矩阵运算X如下图所示for循环的结果是向量ind X matrix 1 20 4 5 V sample 1 20 4 ind numeric for i in 1 nrow X ind i max c
  • 从行和列计算的问题(将两列与不同行的第三列相加)

    参考我之前的问题添加 GROUP BY 子句产生的列 https stackoverflow com questions 13892128 adding columns resulting from group by clause 1389
  • 将 Pentaho 社区版与 SQL Server 2005 结合使用

    我已经尝试了很多次将Pentaho CE连接到SQL Server 2005中的数据库但没有成功 我首先在安装了 Pentaho CE 的 Ubuntu 上执行此操作 似乎无法连接到 SQL Server 然后我在与 SQL Server
  • 如何获取django中涉及多对多关系的对象列表

    我有以下型号 class Committee models Model customer models ForeignKey Customer related name committees name models CharField ma
  • ASP.NET + GridView + 空数据模板

    我有一个使用 EmptyDataTemplate 的 ASP NET GridView 该模板用于在我的数据源中不存在记录的情况下收集数据 我的 GridView 源代码如下所示
  • .vscode-server 文件夹占用大量空间

    我正在使用 VScode 进行 Web 开发 并注意到 vscode server在我的用户文件夹中占用了大量空间 数百MB 我尝试删除它并重新打开 VSCode 并连接到服务器 该文件夹又回来了并且仍然很大 有什么办法可以阻止这种情况发生
  • 将弹性项目固定到容器的底部

    我有 4 个带有标题 描述和按钮的块 我希望标题和描述保持在顶部对齐 按钮保持在底部对齐 无论描述或标题有多长 我还需要保持相同的 HTML 结构 我实际需要的示例图片 有人能弄清楚吗 到目前为止我还没有在互联网上找到修复方法 FLEXBO
  • Angular 2 RC.5 无法绑定到“formGroup”,因为它不是“form”的已知属性[重复]

    这个问题在这里已经有答案了 我有一个错误 Can t bind to formGroup since it isn t a known property of form 将项目更新为 angular2 RC 5 后 应用程序模块 ts Ng
  • 如何以django形式显示依赖的下拉菜单

    在这里 在从模板添加学生费用信息时 如果用户选择某些课程 则只有该所选课程的 basic price 和 advance price 应显示在选择费用选项中 我该如何实现这一点 学生费用 html div class form group