综合档案管理系统中餐饮档案管理实操落地指南
一、环境准备与基础搭建
本实操基于开源轻量框架,零代码冗余,所有步骤可直接复制执行:
1. 依赖环境安装
打开终端(Ubuntu/Debian)执行以下命令,完成Python及项目依赖安装:
- 更新软件源:
sudo apt update && sudo apt install python3 python3-pip -y - 安装Django及核心插件:
pip3 install django django-import-export
2. 项目初始化
在终端执行以下命令创建档案管理系统及餐饮模块:
- 创建项目:
django-admin startproject archive_system - 进入项目目录:
cd archive_system - 创建餐饮档案模块:
python3 manage.py startapp catering_archive
二、餐饮档案核心配置
1. 数据模型定义(完整代码复制即用)
打开项目内archive_system/catering_archive/models.py,写入以下代码:
2. 配置注册与数据库迁移

执行以下步骤完成配置:
- 注册模块:打开
archive_system/settings.py,在INSTALLED_APPS末尾添加'catering_archive' - 生成迁移文件:终端执行
python3 manage.py makemigrations - 执行数据库迁移:终端执行
python3 manage.py migrate - 创建后台管理员:终端执行
python3 manage.py createsuperuser,按提示输入账号密码 - 启动服务:终端执行
python3 manage.py runserver,服务默认访问地址:http://127.0.0.1:8000/admin
三、餐饮档案实操操作
1. 新增餐饮档案
登录后台后,按以下步骤操作:
- 左侧菜单点击「Catering archives」模块,点击右上角「Add」按钮
- 必须填写带的必填字段:店铺名称、餐饮类型(下拉选择)
- 选填字段:地址、联系人、电话、备注,按需填写
- 点击底部「Save」按钮,完成档案新增
2. 查询与批量修改档案
- 查询:后台列表页可按「店铺名称」「餐饮类型」搜索,精准定位档案
- 单条修改:点击目标档案的「Edit」按钮,修改后点击「Save」
- 批量操作:勾选列表左侧多选框,顶部选择操作(删除/启用/停用),点击「Go」执行
3. 批量导入餐饮档案(进阶实操)
用CSV格式批量导入,步骤:
- 注册导入模块:打开
archive_system/catering_archive/admin.py,写入代码: ```python from django.contrib import admin from import_export.admin import ImportExportModelAdmin from .models import CateringArchive class CateringArchiveAdmin(ImportExportModelAdmin, admin.ModelAdmin): list_display = ('shop_name', 'catering_type', 'phone', 'is_active') admin.site.register(CateringArchive, CateringArchiveAdmin) ``` - 准备CSV文件:格式为「店铺名称,餐饮类型,地址,联系人,电话,备注」,示例:
渝州老火锅,cn,北京市海淀区XX路,李华,139XXXX5678,主营重庆火锅 - 后台导入:档案列表页点击「Import」,选择CSV文件,点击「Submit」完成导入
四、数据维护与安全
1. 档案备份与恢复
在项目根目录(manage.py所在文件夹)执行命令:
- 备份:
python3 manage.py dumpdata catering_archive --format json > catering_backup.json - 恢复:若数据丢失,执行
python3 manage.py loaddata catering_backup.json
2. 定期清理无效档案
对于停用6个月以上的无效档案,可通过后台筛选「is_active=False」后批量删除;若需自动清理,可创建定时任务:
- 创建管理命令:在
catering_archive/management/commands下新建delete_inactive.py,写入代码: ```python from django.core.management.base import BaseCommand from catering_archive.models import CateringArchive class Command(BaseCommand): help = 'Delete inactive archives older than 6 months' def handle(self, args, kwargs): CateringArchive.objects.filter(is_active=False, created_at__lt='2024-01-01').delete() self.stdout.write(self.style.SUCCESS('Inactive archives deleted')) ``` - 设置定时任务:在Linux终端执行
crontab -e,添加:0 2 /usr/bin/python3 /home/你的项目路径/manage.py delete_inactive