crm项目之展示客户列表和分页

一.展示客户列表

由于表的关系错综复杂,人为的在数据库中向表中添加数据非常麻烦,涉及到许多外键,多对多关系,不好添加.所以使用django中提供的admin来向数据表中添加数据,就是urls.py中的这个admin

1.创建管理员账户

一开始进入是没有初始用户的,需要创建一个用户,在terminal中输入指令创建管理员账户

Python manage.py createsuperuser 

2. 注册model

进入管理系统之后,发现没有models中的表可以管理,需要在APP下的admin.py中注册models,

from django.contrib import admin
from app01 import models

# Register your models here.
admin.site.register(models.Customer)
admin.site.register(models.ClassList)
admin.site.register(models.Campuses) 

我这里注册了三张表,作为基本实现使用

admin系统中的字段显示文字

 

 

3.展示不同字段的方式

1.普通字段
  对象.对象名

2. choices
  对象.字段名  -> 真实的值
  对象.get_字段名_display() ->中文显示值

3. 外键
  对象.外键  --- > 定义__str__方法
  对象.外键.name
4.其他   在models.py中定义函数 def show_class(self): # class是字段名 return ' | '.join([ str(i) for i in self.class_list.all()])

views.py中

def customer_list(requset):
    customer_obj = models.Customer.objects.all()
    return render(requset, 'customer_list.html',{"customer_obj":customer_obj})

前端html文件

{% extends 'layout.html' %}

{% block content %}
    <table class="table table-bordered table-hover">
        <thead>
        <tr>
            <td>序号</td>
            <td>qq</td>
            <td>姓名</td>
            <td>性别</td>
            <td>出生日期</td>
            {#            <td>手机号</td>#}
            <td>客户来源</td>
            <td>咨询课程</td>
            <td>状态</td>
            <td>最后跟进</td>
            <td>销售</td>
            <td>已报班级</td>
        </tr>
        </thead>
        <tbody>
        {% for customer in customer_obj %}
            <tr>
                <td>{{ forloop.counter }}</td>
                <td>{{ customer.qq }}</td>
                <td>{{ customer.name }}</td>
                <td>{{ customer.get_sex_display }}</td>
                <td>{{ customer.birthday }}</td>
                {#                <td>{{ customer.phone }}</td>#}
                <td>{{ customer.source }}</td>
                <td>{{ customer.course }}</td>
                <td>{{ customer.show_status }}</td>
                <td>{{ customer.last_consult_date }}</td>
                <td>{{ customer.consultant }}</td>
                <td>{{ customer.show_class }}</td>

            </tr>
        {% endfor %}


        </tbody>
    </table>
{% endblock %}

日期格式化的全局配置(2种方式):

1. 在settings.py中配置

USE_L10N = False  # 关闭使用本地格式化输出

DATE_FORMAT = 'Y-m-d'  # 日期配置
DATETIME_FORMAT = 'Y-m-d H:i:s'  # 日期时间配置

 

2.在前端模版中使用过滤器来配置

{{ value|date:"Y-m-d H:M:S" }}

后端向前端直接传html语言防止转义的方法(2种)

目的,为了让前端对后端传输的这种方式不转义

1.使用mark_safe()

from django.utils.safestring import mark_safe # 后端safe

2.使用safe过滤器

{{  value|safe  }}

二.分页处理

猜你喜欢

转载自www.cnblogs.com/robertx/p/10527007.html
今日推荐