我想知道如何运行某些功能,具体取决于所选的复选框。这是我的可视化模板:
这是我的模板代码,名为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)
答案 0 :(得分:2)
您可以使用request.POST.getlist('mycheckboxname')
接收所选复选框的列表,您应该将所选复选框name
和value
设置为相应的字段(例如,#Aged&#39;):
<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协议。单击IMPORT按钮时,客户端会发送一个表单,其中包含用户输入服务器的所有数据。此数据在您的视图中显示为request object
的一部分。您可以检索此数据,您可以使用此数据执行所需操作。例如,在我的示例中,process_values可以选择所有&#39; Phyllis报告&#39;对象并将它们作为呈现模板的一部分返回到响应。没有其他方法可以做到这一点。你无法在没有请求的情况下从服务器上调用click功能。要完成你想要的,你可以尝试拆分逻辑并将其中的一部分放到javascript中。您可以将onclick监听器绑定到您的按钮,然后通过ajax
将请求发送到服务器。但这是一个全新的故事。
这可能很有用:ajax and django