day34 crm开发之班级管理及字段合并、时间和多个任课老师展示处理

字段合并

班级管理,课程和某一期班级字段是分开的如图

# -*- encoding: utf-8 -*-
"""
@File    : classList.py
@Time    : 2022/3/6 14:29
@Author  : simon
@Email   : 294168604@qq.com
@Software: PyCharm
"""
from stark.service.v1 import StarkHandler


class ClassListHandler(StarkHandler):
    list_display = ['school', 'course', 'semester', 'price']


现在我们需要合并,在班级业务模块代码修改如下

# -*- encoding: utf-8 -*-
"""
@File    : classList.py
@Time    : 2022/3/6 14:29
@Author  : simon
@Email   : 294168604@qq.com
@Software: PyCharm
"""
from stark.service.v1 import StarkHandler


class ClassListHandler(StarkHandler):
    def display_course(self, obj=None, is_header=None):
        if is_header:
            return '班级'
        return "%s %s期" % (obj.course.name, obj.semester,)

    list_display = ['school', display_course, 'price']

效果如下

日期处理

日期展示如下

在stark组件中,增加日期格式处理函数

def get_datetime_text(title, field, time_format='%Y-%m-%d'):
    """
    对于Stark组件中定义列时,定制时间格式的数据
    :param title: 希望页面显示的表头
    :param field: 字段名称
    :param time_format: 要格式化的时间格式
    :return:
    """

    def inner(self, obj=None, is_header=None):
        if is_header:
            return title
        datetime_value = getattr(obj, field)
        return datetime_value.strftime(time_format)

    return inner


web应用调用如下

# -*- encoding: utf-8 -*-
"""
@File    : classList.py
@Time    : 2022/3/6 14:29
@Author  : simon
@Email   : 294168604@qq.com
@Software: PyCharm
"""
from stark.service.v1 import StarkHandler,get_datetime_text


class ClassListHandler(StarkHandler):
    def display_course(self, obj=None, is_header=None):
        if is_header:
            return '班级'
        return "%s %s期" % (obj.course.name, obj.semester,)

    list_display = ['school', display_course, 'price',get_datetime_text('开班日期', 'start_date'),'class_teacher','tech_teachers']

效果如下

多个人员展示处理

目前展示如下

stark组件需要增加文本处理函数

def get_m2m_text(title, field):
    """
    对于Stark组件中定义列时,显示m2m文本信息
    :param title: 希望页面显示的表头
    :param field: 字段名称
    :param time_format: 要格式化的时间格式
    :return:
    """

    def inner(self, obj=None, is_header=None):
        if is_header:
            return title
        queryset = getattr(obj, field).all()
        text_list = [str(row) for row in queryset]
        return ','.join(text_list)

    return inner


web应用调用如下

# -*- encoding: utf-8 -*-
"""
@File    : classList.py
@Time    : 2022/3/6 14:29
@Author  : simon
@Email   : 294168604@qq.com
@Software: PyCharm
"""
from stark.service.v1 import StarkHandler,get_datetime_text,get_m2m_text


class ClassListHandler(StarkHandler):
    def display_course(self, obj=None, is_header=None):
        if is_header:
            return '班级'
        return "%s %s期" % (obj.course.name, obj.semester,)

    list_display = ['school', display_course, 'price',get_datetime_text('开班日期', 'start_date'),
                    'class_teacher',get_m2m_text('任课老师','tech_teachers')]

效果展示

posted @   simon_T  阅读(66)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示