Django4全栈进阶之路21 项目实战(在线报修):创建App应用和Model模型
- 创建应用App
-
python manage.py startapp RepairApp
-
- 创建模型
在models.py文件中定义一个Repair模型来表示报修单,其中包含以下字段:
-
- repair_id: 报修单号
- repair_time: 报修时间
- repair_person: 报修人
- problem_description: 问题描述
- service_person: 接单人
- response_time: 首次回应时间
- progress: 处理进度
-
from django.db import models # Create your models here. from django.db import models import datetime from django.db.models.signals import pre_save from django.dispatch import receiver # 报修单状态choices STATUS_CHOICES = ( ('1', '待受理'), ('2', '处理中'), ('3', '已完成'), ('4', '已撤销'), ) class Repair(models.Model): repair_id = models.CharField(max_length=20, unique=True, verbose_name="报修单号") repair_time = models.DateTimeField(auto_now_add=True, verbose_name="报修时间") emp_id = models.CharField(max_length=20) repair_person = models.CharField(max_length=20, verbose_name="报修人") repair_description = models.TextField(verbose_name="问题描述") receiver = models.CharField(max_length=20, verbose_name="接单人", null=True, blank=True) first_response_time = models.DateTimeField(null=True, blank=True, verbose_name="首次回应时间") process_status = models.CharField(max_length=1, choices=STATUS_CHOICES, default='1', verbose_name="处理进度") created_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间") update_time = models.DateTimeField(auto_now=True, verbose_name="最后修改时间") def __str__(self): return self.repair_id class Meta: verbose_name = "报修单" verbose_name_plural = "报修单" ordering = ['-repair_time'] @receiver(pre_save, sender=Repair) def auto_generate_repair_id(sender, instance, **kwargs): if not instance.repair_id: # 生成年月 year_month = datetime.datetime.now().strftime("%Y%m") # 查找当月最大的流水号 last_repair = Repair.objects.filter(repair_id__startswith=year_month).order_by('-repair_id').first() if last_repair: # 如果存在,流水号为最大报修单号加1 max_id = int(last_repair.repair_id[-4:]) new_id = f"{year_month}{max_id + 1:04}" else: # 如果不存在,流水号从0001开始 new_id = f"{year_month}0001" instance.repair_id = new_id
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2022-04-26 Django-5:前端模板路径设定TEMPLATES DIRS和调用
2022-04-26 Django-4:运行runserver
2022-04-26 Django 14天从小白到进阶- Day1 Django 初识
2022-04-26 WSGI实现支持多URL的WEB服务器
2022-04-26 WSGI实现一个WEB服务
2022-04-26 WSGI介绍
2022-04-26 socket实例