我想在Django中创建2个列表。
第一个列出了从db查询(外部查询)返回的所有结果。第二个窗格为空白,直到完成选择。这是单选下拉
用户在第一个下拉列表中选择一个项目后,将显示该选择的所有结果列表(基于另一个数据库查询)。此选择是多选。我不确定哪些元素允许Django中的多选
实施例。在第一个列表中选择城市,获取第二个列表中所有中心的列表,在第二个列表中选择多个中心并提交
被查询的信息来自外部数据库,我也可以使用API,但我的难点不在查询中,而是如何创建元素并根据选择更新它们。我也在使用django-bootstrap3
答案 0 :(得分: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,您可以通过jQuery成功函数Ajax在前端从Django获取的JSON数据填充多选HTML组件。