我想知道如何根据所选的复选框运行某些功能。这是我的视觉模板:
这是我的模板代码,名为 admin.html:
<div class="panel-body">
<p><button type="button" class="btn btn-black"><i class="fa fa-upload" </i> <span class="bold">IMPORT ALL</span></button> </p>
<p> Import selected reports:</p>
<p> <label><input type="checkbox" value=""> Cisco Backlog Report</label></p>
<p> <label><input type="checkbox" value=""> Planning & Standard</label></p>
<p> <label><input type="checkbox" value=""> Emo Trans Report</label></p>
<p> <label><input type="checkbox" value=""> Phyllis Report</label></p>
<p> <label><input type="checkbox" value=""> Purchase Order View</label></p>
<p> <label><input type="checkbox" value=""> On Hand Inventory</label></p>
<p> <label><input type="checkbox" value=""> Bill of Material</label></p>
<p> <label><input type="checkbox" value=""> Aged</label></p>
<p> <label><input type="checkbox" value=""> Shipment with Times</label></p>
<p><button type="button" class="btn btn-danger">Import</button> </p>
正如我之前提到的,我有 10 个函数可以读取多个 .csv 报告并将数据上传到模型中,然后使用 URL 部分触发它们。在我的views.py中,我将展示两个示例:
def importpurchase(request)
Log logic here
def importcisco(request)
Log logic here
def importall(request) # this function is to import all
importpurchase(None)
importcisco(None)
最佳答案
您可以使用request.POST.getlist('mycheckboxname')
接收选定复选框的列表,您应该为您的复选框提供名称
和值
根据所选字段(例如“年龄”):
<input type="checkbox" name="mycheckboxname" value="Aged">
然后您可以根据列表中选择的内容调用任何函数:
def func1(l,vals):
process_values_in_different_way(l, vals)...
def func2(l,vals):
process_values(l, vals)...
def MyView(request):
values=get_values_from_somewhere()
mylist=request.POST.getlist('mycheckboxname')
if 'Aged' in mylist:
func2(mylist, values)
elif anotherValue in mylist:
func2(mylist, values)
elif...
etc
编辑(根据您的评论):
这就是 django 的工作原理:您的客户端发送请求,然后您返回响应。这称为 HTTP 协议(protocol)。单击“导入”按钮后,客户端会发送一个表单,其中包含用户向服务器输入的所有数据。此数据在您的 View 中显示为请求对象
的一部分。您可以检索此数据,并可以使用此数据执行您想要的任何操作。例如,在我的示例中,process_values 可以选择所有“Phyllis Report”对象并将它们返回到响应,作为呈现模板的一部分。没有其他方法可以做到这一点。您不能在没有请求的情况下仅从服务器调用单击功能。为了完成你想要的,你可以尝试拆分你的逻辑并将其一部分放入 JavaScript 中。您将能够将 onclick 监听器绑定(bind)到您的按钮,然后通过 ajax
向服务器发送请求。但这是一个全新的故事。
这可能有用:ajax and django
关于html - 如何使用 django 复选框触发函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39888186/