html - 如何使用 django 复选框触发函数

标签 html django twitter-bootstrap python-2.7 templates

我想知道如何根据所选的复选框运行某些功能。这是我的视觉模板:Template

这是我的模板代码,名为 admin.html:

<div class="panel-body">
    <p><button type="button" class="btn btn-black"><i class="fa fa-upload"  </i>&nbsp;&nbsp;<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/

相关文章:

javascript - 背景图片加载完毕后如何显示页面?

未指定特定宽度的 HTML 省略号

python - Django 应用程序的典型内存使用情况

css - Bootstrap 定制 : Why should I use LESS?

jquery - 使用 z 索引和位置 :fixed to make layered scrolling

css - 更改 Bootstrap 导航 a :active background color

html - 不使用固定宽度和高度的CSS圆

javascript - Flash Canvas 响应动画大小

django - 自定义管理 View 中的面包屑 (Django)

database - Django-queryset 每个字段获取一个对象=foo