zoukankan      html  css  js  c++  java
  • Django之CRM项目Day5-跳转页面 跟进记录 报名记录

    1 编辑和添加后跳转页面:

    思路:写一个参数将路径的条件带上
    注意:捋流程的时候从urls里开始

    1.在crm文件夹下新建python包:templatetags,在包里新建url.py:

    from django import template
    from django.urls import reverse
        
    register = template.Library()
        
    @register.simple_tag()
    def reverse_url(request, name, *args, **kwargs):
        """
        反向解析生成URL,拼接参数
        :param request:
        :param name: URL的别名
        :param args: pk等信息,可以按照位置参数传,也可以按照关键字参数传
        :param kwargs:
        :return:
        """
        # 先反向解析生成URL,根据传的URL别名和参数反向解析生成基本的URL
        base_url = reverse(name, args=args, kwargs=kwargs)
        # 从当前的URL上获取参数 --> query=1&page=2
        params = request.GET.urlencode  # url变成了字符串
        if not params:
            return base_url
        # 返回带条件的URL
        return "{}?{}".format(base_url, params)  # 有params的情况下再拼接URL
    

    2.修改customer_list.html:

    {% load url %}  引入url
    

    修改操作

    <td>
    <a href="{% reverse_url request 'customer_edit' customer.pk %}"><i class="fa fa-pencil-square-o"></i></a>
    </td>
    

    3.在crm下的util文件里新建url.py:

    from django.urls import reverse
    # 跳转页面,因为其他方法有可能也会用到,所以写成公共部分
    def reverse_url(request, name, *args, **kwargs):
        base_url = reverse(name, args=args, kwargs=kwargs)
        params = request.GET.urlencode  # url变成了字符串
        if not params:
            return base_url
        return "{}?{}".format(base_url, params)  # 有params的情况下再拼接URL
    

    4.修改views.py:

    from crm.utils.url import reverse_url
    # 新增和编辑
    def customer_change(request, edit_id=None):
        obj = models.Customer.objects.filter(pk=edit_id).first()
        form_obj = CustomerForm(instance=obj)
        if request.method == 'POST':
            form_obj = CustomerForm(request.POST, instance=obj)
            if form_obj.is_valid():
                form_obj.save()  # 没有instance新增  有instance做修改
                # return redirect(reverse('customer_list'))
                return redirect(reverse_url(request, 'customer_list'))
        return render(request, 'customer_change.html', {'form_obj': form_obj, 'edit_id': edit_id})
    

    2 跟进记录的展示、新增和编辑

    展示跟进记录:

    urls.py:

    -> views.py:

       class ConsultList(View):
        def get(self, request):
            return (request, 'consult_list.html')
    

    ->模板-consult_list.html:

    ->views.py:

       # 获取跟进记录
       all_consult = models.
    

    ->模板-consult_list.html:

    ->模板-layout.html:右侧添加跟进记录一栏

    添加跟进记录:

    urls.py:

    -> views.py:

       def consult_add(request):
           pass
    

    ->forms.py:

       class ConsultForm(BootstrapForm):
           class Meta:
               model = models.ConsultRecord
               fields = "__all__"
    

    -> views.py:

       def consult_add(request):
           # 实例化一个空Form
           form_obj = ConsultForm()
           return render(request,'consult_add.html', {'form_obj':form_obj})
    

    ->模板-consult_add.html:

    ->forms.py:

       class ConsultForm(BootstrapForm):
           class Meta:
               model = models.ConsultRecord
               fields = "__all__"
               
            def __init__(*args, **kwargs):
               super().__init__(*args, **kwargs)
               self.fields['delete_status'].widget.attrs.pop('class')
    

    ->views.py

       def consult_add(request):
           form_obj = ConsultForm()
           # 处理
           if request.method == 'POST':
               form_obj = ConsultForm(request.POST)
               
           return render(request,'consult_add.html', {'form_obj':form_obj})
    

    ->模板-consult_add.html:

       
    

    编辑跟进记录

    ->urls.py:

       url(r'^')
    

    ->views.py

       def consult_add(request):
           obj = models.ConsultRecord.objects.filter(pk=edit_id).first()
           form_obj = ConsultForm()
           # 处理
           if request.method == 'POST':
               form_obj = ConsultForm(request.POST)
               
           return render(request,'consult_edit.html', {'form_obj':form_obj})
    

    ->模板-consult_edit.html:

    ->模板-consult_list.html:添加跳转链接

    - 为每一名客户添加跟进记录编辑:

    1. 报名记录
  • 相关阅读:
    字符串转list
    vant下拉单选
    断点续传(上传)C#版
    7z压缩测试
    SQL SERVER查看表字段信息
    FTP安全组设置
    Unable to find @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest
    Charles 抓包使用教程
    董明珠语录
    京东 Vue3 组件库 nutui 3.0 发布,支持小程序开发
  • 原文地址:https://www.cnblogs.com/russellyoung/p/Django-zhiCRM-xiang-muDay5tiao-zhuan-ye-mian-gen-j.html
Copyright © 2011-2022 走看看