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()))
  • 相关阅读:
    LeetCode 109 Convert Sorted List to Binary Search Tree
    LeetCode 108 Convert Sorted Array to Binary Search Tree
    LeetCode 107. Binary Tree Level Order Traversal II
    LeetCode 106. Construct Binary Tree from Inorder and Postorder Traversal
    LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal
    LeetCode 103 Binary Tree Zigzag Level Order Traversal
    LeetCode 102. Binary Tree Level Order Traversal
    LeetCode 104. Maximum Depth of Binary Tree
    接口和多态性
    C# 编码规范
  • 原文地址:https://www.cnblogs.com/xuqidong/p/12194646.html
Copyright © 2011-2022 走看看