我们要想实现多选,首先想到的肯定是select 的多选框,当然你可以用一些插件实现input框中多选和删除,看你自己的选择,这里我用的select的多选

循环ServiceInfo表中field得到类似下面的效果:

我们先看看model层

class CustomerInfo(models.Model):
	user =  models.ForeignKey(User)
	service_info = models.CharField('产品',max_length=256,help_text='产品')  //存入数据格式id|id|id|等
class ServiceInfo(models.Model):
    name = models.CharField('服务名称',max_length=64,help_text="服务名称",unique=True,blank=False,null=False,db_index = True)
    add_time = models.DateTimeField(auto_now_add=True,default=datetime.datetime.now())
    class Meta:
        app_label = 'config' 
        unique_together = (('name'),)
我们的html页面:
 <div class="field">
                <label>产品服务</label>
                <select id="service_ids" size='5' class="select-xlarge" multiple="multiple" name="service_infos" οnclick="check_service()">
                  {% for item in serviceinfos %}
                  <option value="{{item.id}}">{{item.name}}</option>
                  {% endfor %}
                </select>
//将多选的值通过隐藏域传递给后台数据库
<input type="hidden" name="service_info" id="service_info">
javascrip代码:
<script>
function serealizeSelects (select)
      var array = [];
      select.each(function(){ array.push($(this).val()) });
      return array;
function check_service(){
  var service_ids=serealizeSelects($('#service_ids'))
  var service_str=''
    for (var i = service_ids.length - 1; i >= 0; i--) {
      for (var a=0;a<= service_ids[i].length - 1; a++) {
        service_str+=service_ids[i][a]+'|'
console.log(service_str) //1|3|
 $('#service_info').val(service_str)
</script>

我们选择第一个和第三个,得到的service_ids=[[‘1’,‘3’]]

a=['a','b']
console.log(a.push('v')) //将元素插入到数组最后面,然后返回新数组的长度,3

序列后select数组后,将数组元素以|的连字符的方式存入掩藏域中,然后传到后台,存入数据库中

前端显示的话,需要将类似1|3|的值,先劈开,再查询id所对应的name

customerObjects = CustomerInfo.objects.all().order_by("-id")
	for customer in customerObjects:
		service_ids = customer.service_info.split('|')
		serviceinfos = ''
		for id in service_ids:
			if id:
				serviceinfos += ServiceInfo.objects.get(id=id).name+','
		customer.serviceinfos = serviceinfos
我们在前端展示的时候循环customers对象的值时,直接这样输出就好了,所有多选的通过,连接了
           <th>产品线</th>
        </thead>
        <tbody>
          {%for info in customers.object_list %}
            <td>{{info.serviceinfos}}</td>
class Article(models.Model): name = models.CharField('标题', max_length=256) country = models.CharField('国家', max_length=256) province = models.CharField('省份', max_length=2 author_list = request.POST.getlist('author_list') ### 转载于:https://www.cnblogs.com/robinunix/p/7435026.html Django 中获取text,password 名字:<input type="text" name="name"><br><br> 密码:<input type="password" name="password">   Form表单提交 数据 时使用的是post方式,所以在后端接收参数的时候需要先判断请求方式为post时才能请求到 数据 name... Django 如何使用多 选 枚举。 在Djngo orm 的使用过程中经常会遇到使用多 选 枚举的情况。但 django 提供的models.CharField是单 选 的。咋办呢?提供两个思路,1、使用一对多,建立多张表实现。 2、第三方插件MultiSelectField库 先上案例: from multiselectfield import MultiSelectField # ... MY_CHOICES = (('item_key1', 'Item title 1.1'), 添加HTML表单 blog\templates\archive.html <form action="/blog/create/" method="post"> {% csrf_token %} Title: <input type=text name=... 本文主要讲解如何获取用户在html页面中输入的信息。1.首先写一个自定义的html网页login.htmltestform表单里的action{%url ‘check"%} 对应的是urls.py里的name值2.配置urls.py文件urlpatterns = [path("reg/",views.reg,name="check"),path("",views.login),]3.配置views... Currently i filter by some option in django 's admin interface. For instance lets say i filter by 'By status'. Is it possible to select multiple statuses to filter results from? Here is the screenshot ... Django 中,html 页面通过 form 标签来传递表单 数据 。对于复 选 框信息,即 checkbox 类型,点击 submit 后, 数据 将提交至 view 中的函数。我们通过request.POST.get() 函数来获取来自 html 页面的值,但是该函数只能 get 到 选 中的最后一个值。因此想要传递 选 中的多个值,需要用 request.POST.getlist() 函数该函数返回一个列表,... 在页面的右上角有一个添加待办事项的按钮,输入内容并点击添加之后,内容就会添加到页面的表里面,成为第5个待办事项。 我们知道,点击按钮之后将会提交一个表单。这个表单就是我们的待办... 自用运维平台的权限系统中有涉及到一个用户管理的功能,其中包含了用户的角色修改,用户和角色是多对多的关系,前端编辑界面的角色展示为了减少更新麻烦,采用动态从后端获取角色列表,这样后端修改也不需要前端去做更新,管理界面的配置用户角色的地方需要用到复 选 框,因为是多对多,这里用js去完成修改后赋值到初始字段中,使后端可以轻易的 读取 , 前端用户管理界面 点击编辑按钮,弹出对应的用户信息,这里是之前写的如何给子页面赋值 可以看到这里的角色是可以多 选 的,而且这些 选 项是动态从后端获取的。 动态获取角色(获取复 选 框).