一.展示客户列表
由于表的关系错综复杂,人为的在数据库中向表中添加数据非常麻烦,涉及到许多外键,多对多关系,不好添加.所以使用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 }}