2017-10-04 36 views
0

我想在Django中創建2個列表。Django基於數據庫查詢和用戶選擇的交互式列表

第一個列出了從數據庫查詢(外部查詢)返回的所有結果。第二個窗格是空白的,直到完成選擇。這是單選下拉

一旦用戶在第一個下拉列表中選擇了一個項目,就會顯示該選擇的所有結果列表(基於另一個數據庫查詢)。此選擇是多選。我不確定什麼元素允許在Django中進行多重選擇

示例。在第一列表中選擇城市,獲得第二列表中的所有中心列表,在第二列表中選擇多箇中心並提交

被查詢的信息來自外部數據庫,我也可以使用API​​,但是我的難度不在查詢,但是如何創建元素並根據選擇進行更新。我也在用django-bootstrap3

回答

1

你可以使用Ajax來查詢數據庫。

$.ajax({ 
     type: "POST", 
     url: "/load_pane/" + $id, //specify your URL which you will create in Django with some ID selected by user from dropdown 
     // Specify your CSRF token here, if you do a GET request then it's not needed 
     data: $("#form").serialize() // You can send additional data if you want, 
     success: function (data) { 
      $("#second-pane").html . . . . // Populate second pane with JSON data. (HTML container with multi-select) 

      } 
     }); 

而且在Django,你可以使用RESTful API,因此還是一個簡單的方法 註冊 '/ loadpane'(你在URL航線並使其調用views.py此功能)

def populate_pane(request, id): 
     if request.POST: 
      data = Model.objects(...) #Get whatever data you want using model 
      return HttpResponse(json.dumps(data)) #This JSON will be processed by Ajax on front-end in the Multi-Select HTML component. 

請點擊此鏈接 - https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_select_multiple用於多選HTML組件,您可以使用JSON數據填充該JSON數據,您將在前端使用jQuery獲取Ajax的成功函數。

相關問題