zoukankan      html  css  js  c++  java
  • 批量处理

    class CustomerView(View):
        def get(self,request):
            if reverse('customer_list') == request.path:
                customer_list = models.Customer.objects.all()
            elif reverse('mycustomers') == request.path:
                customer_list = models.Customer.objects.filter(consultant=request.user).all()
            return render(request, 'customer_list.html', {'customer_list': customer_list})
    
        def post(self,request):
            print(request.POST)
            func_str=request.POST.get('action')
            data=request.POST.getlist('selected_pk_list')
            if not hasattr(self,func_str):
                return HttpResponse("非法输入")
            else:
                func=getattr(self,func_str)
                func(data)
                ret=self.get(request)
                return ret
    
        def patch_delete(self,data):
            models.Customer.objects.filter(pk__in=data).update(gender=2)
    
    
    
    urls
     url(r'^customers/list/', views.CustomerView.as_view(), name='customer_list'),
        url(r'^mycustomers/', views.CustomerView.as_view(), name='mycustomers'),
    {% extends 'base/main.html' %}
    
    {% block main %}
        <form action="" method="post">
        <ol class="breadcrumb">
            <select name="action" id="" class="form-control" style="display: inline-block; 250px">
                <option value="patch_delete">delete selected data</option>
            </select>
            <button style="vertical-align: 0px" class="btn btn-danger">GO</button>
        </ol>
        <div class="col-xs-12 row">
            <table class="text-center table table-bordered table-hover">
            <thead>
            <tr>
                <th><input type="checkbox"></th>
                <th>编号</th>
                <th>客户姓名</th>
                <th>性别</th>
                <th>QQ</th>
                <th>当前薪资</th>
                <th>当前状态</th>
                <th>咨询日期</th>
                <th>客户来源</th>
                <th>销售</th>
                <th>所报班级</th>
            </tr>
            </thead>
            <tbody>
            {% for customer in customer_list %}
                <tr>
                    <td><input type="checkbox" name="selected_pk_list" value="{{ customer.pk }}"></td>
                    <td>{{ forloop.counter }}</td>
                    <td>{{ customer.name }}</td>
                    <td>{{ customer.get_gender_display }}</td>
                    <td>{{ customer.qq }}</td>
                    <td>{{ customer.salary }}</td>
                    <td>{{ customer.get_status }}</td>
                    <td>{{ customer.date|date:'Y-m-d' }}</td>
                    <td>{{ customer.get_source_display }}</td>
                    <td>{{ customer.consultant }}</td>
                    <td>{{ customer.get_classlist }}</td>
                </tr>
            {% endfor %}
            </tbody>
        </table>
        </div>
    
        </form>
    
    {% endblock %}
    class Customer(models.Model):
        """
        客户表
        """
        qq = models.CharField(verbose_name='qq', max_length=64, unique=True, help_text='QQ号必须唯一')
    
        name = models.CharField(verbose_name='学生姓名', max_length=16)
        gender_choices = ((1, '男'), (2, '女'))
        gender = models.SmallIntegerField(verbose_name='性别', choices=gender_choices)
    
        education_choices = (
            (1, '重点大学'),
            (2, '普通本科'),
            (3, '独立院校'),
            (4, '民办本科'),
            (5, '大专'),
            (6, '民办专科'),
            (7, '高中'),
            (8, '其他')
        )
        education = models.IntegerField(verbose_name='学历', choices=education_choices, blank=True, null=True, )
        graduation_school = models.CharField(verbose_name='毕业学校', max_length=64, blank=True, null=True)
        major = models.CharField(verbose_name='所学专业', max_length=64, blank=True, null=True)
    
        experience_choices = [
            (1, '在校生'),
            (2, '应届毕业'),
            (3, '半年以内'),
            (4, '半年至一年'),
            (5, '一年至三年'),
            (6, '三年至五年'),
            (7, '五年以上'),
        ]
        experience = models.IntegerField(verbose_name='工作经验', blank=True, null=True, choices=experience_choices)
        work_status_choices = [
            (1, '在职'),
            (2, '无业')
        ]
        work_status = models.IntegerField(verbose_name="职业状态", choices=work_status_choices, default=1, blank=True,
                                          null=True)
        company = models.CharField(verbose_name="目前就职公司", max_length=64, blank=True, null=True)
        salary = models.CharField(verbose_name="当前薪资", max_length=64, blank=True, null=True)
    
        source_choices = [
            (1, "qq群"),
            (2, "内部转介绍"),
            (3, "官方网站"),
            (4, "百度推广"),
            (5, "360推广"),
            (6, "搜狗推广"),
            (7, "腾讯课堂"),
            (8, "广点通"),
            (9, "高校宣讲"),
            (10, "渠道代理"),
            (11, "51cto"),
            (12, "智汇推"),
            (13, "网盟"),
            (14, "DSP"),
            (15, "SEO"),
            (16, "其它"),
        ]
        source = models.SmallIntegerField('客户来源', choices=source_choices, default=1)
        referral_from = models.ForeignKey(
            'self',
            blank=True,
            null=True,
            verbose_name="转介绍自学员",
            help_text="若此客户是转介绍自内部学员,请在此处选择内部学员姓名",
            related_name="internal_referral"
        )
        # course = models.ManyToManyField(verbose_name="咨询课程", to="Course")
    
        status_choices = [
            (1, "已报名"),
            (2, "未报名")
        ]
        status = models.IntegerField(
            verbose_name="状态",
            choices=status_choices,
            default=2,
            help_text=u"选择客户此时的状态"
        )
    
        consultant = models.ForeignKey(verbose_name="课程顾问", to='UserInfo', related_name='consultanter',
                                       limit_choices_to={'depart_id': 1001})
        course = MultiSelectField('咨询课程',choices=course_choices)
        date = models.DateField(verbose_name="咨询日期", auto_now_add=True)
        recv_date = models.DateField(verbose_name="当前课程顾问的接单日期", null=True)
        last_consult_date = models.DateField(verbose_name="最后跟进日期", )
        class_list = models.ManyToManyField('ClassList',verbose_name='已报班级')
    
        def __str__(self):
            return self.name
        def get_classlist(self):
            l=[]
            for cls in self.class_list.all():
                l.append(str(cls))
            return mark_safe('<br>'.join(l))
        def get_status(self):
            status_color={
                1:'green',
                2:'orange'
            }
            return mark_safe("<span style='background-color:%s;color:white'>%s</span>"%(status_color[self.status],self.get_status_display()))
  • 相关阅读:
    链式前向星啊
    并 查 集 ! ! !
    看似很水的题--找画笔
    tarjan
    动态内存分配
    C++ 基础中的基础 ---- 引用
    STL 补档
    错题笔记和易错点提醒
    题解 P2253 【好一个一中腰鼓!】
    PAT-A1003
  • 原文地址:https://www.cnblogs.com/xuqidong/p/12194646.html
Copyright © 2011-2022 走看看