网站首页/ 信息中心/ 档案百科/

基于Python Django构建档案CRM管理实操指南

发布时间:2026年07月06日 13:50:03 浏览量:0

一、环境准备与项目初始化

在开始构建档案CRM系统之前,必须确保本地开发环境配置正确。本指南基于Python 3.9及Django 4.2 LTS版本编写,确保长期稳定支持。请严格按照以下步骤执行,避免因版本差异导致报错。

1. 安装依赖库

打开终端(Terminal或CMD),执行以下命令安装Django及处理图像文件的Pillow库:

```bash pip install django==4.2 pillow ```

2. 创建项目与应用

在合适的目录下创建项目,我们将项目命名为arch_crm,应用命名为core。执行以下命令:

```bash django-admin startproject arch_crm cd arch_crm python manage.py startapp core ```

3. 目录结构调整

为了规范管理,请在项目根目录下手动创建以下文件夹,用于存放静态文件和模板:

二、数据库模型设计与配置

档案CRM的核心在于对客户档案的结构化存储。我们需要设计包含基本信息、状态追踪及文件附件的模型。打开core/models.py文件,删除原有内容,完全替换为以下代码:

```python from django.db import models import os def get_upload_path(instance, filename): """动态生成文件上传路径,按日期归档""" return os.path.join('archives', str(instance.id), filename) class Archive(models.Model): STATUS_CHOICES = ( ('new', '新建'), ('contacted', '已联系'), ('signed', '已签约'), ('archived', '已归档'), ) name = models.CharField(max_length=100, verbose_name="客户/档案名称") contact_person = models.CharField(max_length=50, verbose_name="联系人") phone = models.CharField(max_length=20, verbose_name="联系电话") email = models.EmailField(blank=True, null=True, verbose_name="电子邮箱") address = models.TextField(blank=True, null=True, verbose_name="详细地址") status = models.CharField(max_length=20, choices=STATUS_CHOICES, default='new', verbose_name="当前状态") description = models.TextField(blank=True, null=True, verbose_name="备注说明") attachment = models.FileField(upload_to=get_upload_path, blank=True, null=True, verbose_name="档案附件") created_at = models.DateTimeField(auto_now_add=True, verbose_name="创建时间") updated_at = models.DateTimeField(auto_now=True, verbose_name="更新时间") class Meta: verbose_name = "客户档案" verbose_name_plural = "客户档案" ordering = ['-created_at'] def __str__(self): return self.name ```

配置注册应用

打开arch_crm/settings.py,找到INSTALLED_APPS列表,将'core'添加进去:

```python INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'core', 注册自定义应用 ] ```

执行数据库迁移

模型定义完成后,必须生成并执行迁移文件以创建数据库表:

```bash python manage.py makemigrations python manage.py migrate ```

三、后台管理系统深度定制

Django自带强大的Admin后台,我们通过配置core/admin.py,将其转化为一个可用的档案管理界面,支持搜索、筛选和列展示。

打开core/admin.py,完全替换为以下代码:

```python from django.contrib import admin from .models import Archive @admin.register(Archive) class ArchiveAdmin(admin.ModelAdmin): list_display = ('id', 'name', 'contact_person', 'phone', 'status', 'created_at') list_filter = ('status', 'created_at') search_fields = ('name', 'contact_person', 'phone', 'email') list_per_page = 20 ordering = ('-created_at',) fieldsets = ( ('基本信息', { 'fields': ('name', 'contact_person', 'phone', 'email', 'address') }), ('状态与备注', { 'fields': ('status', 'description') }), ('附件管理', { 'fields': ('attachment',) }), ('时间戳', { 'fields': ('created_at', 'updated_at'), 'classes': ('collapse',) }), ) readonly_fields = ('created_at', 'updated_at') ```

创建超级管理员

为了登录后台,需要创建一个管理员账号:

```bash python manage.py createsuperuser ```

基于Python Django构建档案CRM管理实操指南

按照提示输入用户名、邮箱和密码。此时运行python manage.py runserver并访问http://127.0.0.1:8000/admin即可看到管理界面。

四、前端视图与路由配置

为了给普通用户提供一个查看档案的列表页,我们需要编写视图函数和配置URL。

1. 配置URL路由

在项目根目录的arch_crm/urls.py中,配置路径指向应用视图,并处理媒体文件路由:

```python from django.contrib import admin from django.urls import path, include from django.conf import settings from django.conf.urls.static import static from core import views urlpatterns = [ path('admin/', admin.site.urls), path('', views.archive_list, name='archive_list'), ] 开发环境下提供媒体文件服务支持 if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) ```

2. 编写视图函数

打开core/views.py,编写查询所有档案的逻辑:

```python from django.shortcuts import render from .models import Archive def archive_list(request): archives = Archive.objects.all().order_by('-created_at') context = { 'archives': archives } return render(request, 'index.html', context) ```

五、模板渲染与静态文件配置

1. 配置模板路径

回到arch_crm/settings.py,找到TEMPLATES配置项,修改'DIRS'以指向我们创建的templates目录:

```python TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [BASE_DIR / 'templates'], 确保此处配置正确 'APP_DIRS': True, ... }, ] ```

2. 配置媒体文件路径

arch_crm/settings.py文件末尾添加媒体文件配置,确保上传的文件能被访问:

```python import os 媒体文件配置 MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') ```

3. 编写HTML模板

templates/目录下新建index.html文件,写入以下代码实现一个简洁的档案列表展示页:

```html 档案CRM管理系统
客户档案列表 {% for archive in archives %} {% empty %} {% endfor %}
ID 名称 联系人 电话 状态 创建时间
{{ archive.id }} {{ archive.name }} {{ archive.contact_person }} {{ archive.phone }} {{ archive.get_status_display }} {{ archive.created_at|date:"Y-m-d H:i" }}
暂无档案数据
```

六、运行与功能验证

所有代码已配置完毕,现在启动服务进行验证。

1. 启动开发服务器

```bash python manage.py runserver ```

2. 访问前台页面

打开浏览器访问 http://127.0.0.1:8000/,此时页面应显示“暂无档案数据”。

3. 录入数据验证

  1. 访问 http://127.0.0.1:8000/admin 并使用刚才创建的超级管理员账号登录。
  2. 点击“客户档案”后的“+ 增加”按钮。
  3. 填写名称、联系人、电话,选择状态,并上传一个测试文件(如PDF或图片),点击保存。
  4. 回到前台首页 http://127.0.0.1:8000/,检查是否实时显示刚才录入的数据。
  5. 在后台列表页尝试搜索框输入刚才的联系人姓名,验证搜索功能是否正常。

至此,一个具备基础的增删改查、文件上传、状态筛选及搜索功能的档案CRM管理系统已完全落地。

船舶制造部门档案培训报名:搞定合规管理的实用指南
船舶制造部门档案培训报名:搞定合规管理的实用指南
很多船舶制造企业的制造部同事都头疼——造船全流程的检验记录、图纸、物料清单杂七杂八,怎么整理才符合海事监管要求?别犯愁,咱们今天就聊聊怎么通过正规培训搞定这些事,帮你避开合规踩坑的雷区,省心又高效。
2026年07月06日 13:50:03
微信咨询
电话联系
QQ客服
微信咨询一对一服务
服务热线: 028-8744 4417
QQ客服: 2305721818