当前位置: 首页 > news >正文

Django软删除功能完整指南:构建图书馆项目

Django软删除功能完整指南:构建图书馆项目

在这里插入图片描述

推荐超级课程:

  • 本地离线DeepSeek AI方案部署实战教程【完全版】
  • Docker快速入门到精通
  • Kubernetes入门到大师通关课
  • AWS云服务快速入门实战

目录

  • Django软删除功能完整指南:构建图书馆项目
    • 第 1 步:安装所需包
    • 第 2 步:设置您的 Django 项目
    • 第 3 步:创建一个 Django 应用程序
    • 第 4 步:更新 `library_project/settings.py` 中的 `INSTALLED_APPS`
    • 第 5 步:在 `library/models.py` 中定义模型
    • 第 6 步:在 `library/admin.py` 中注册模型
    • 第 7 步:进行迁移并应用更改
    • 第 8 步:创建超级用户
    • 第 9 步:在 `library/serializers.py` 中创建序列化器
    • 第 10 步:在 `library/views.py` 中创建视图
    • 第 11 步:更新 `library/urls.py`
    • 第 12 步:更新 `library_project/urls.py`
    • 第 13 步:运行开发服务器

在本教程中,我将使用 django-safedelete 包创建一个具有软删除功能的简单 Django 图书馆项目。该项目将包括多个模型、Django REST 框架 (DRF) API 和基本的 CRUD 操作。

Django-safedelete 功能,允许您将对象标记为已删除,而实际上并未从数据库中移除它们

第 1 步:安装所需包

pip install django djangorestframework django-safedelete

安装 Django、Django REST 框架和 django-safedelete 以添加软删除功能。

第 2 步:设置您的 Django 项目

django-admin startproject library_project
cd library_project

此命令初始化一个名为 library_project 的新 Django 项目。

第 3 步:创建一个 Django 应用程序

python manage.py startapp library

生成一个新的 Django 应用程序 library 来组织您的项目组件。

第 4 步:更新 library_project/settings.py 中的 INSTALLED_APPS

INSTALLED_APPS = [
    # ...
    'rest_framework',
    'safedelete',
    'library',
]

'rest_framework''safedelete' 和您的 'library' 应用程序添加到 INSTALLED_APPS 列表中。

第 5 步:在 library/models.py 中定义模型

创建两个具有软删除功能的模型 AuthorBook

# library/models.py
from django.db import models
from safedelete.models import SafeDeleteModel, SOFT_DELETE_CASCADE
class Author(SafeDeleteModel):
    _safedelete_policy = SOFT_DELETE_CASCADE
    name = models.CharField(max_length=100)
    def __str__(self):
        return self.name
class Book(SafeDeleteModel):
    _safedelete_policy = SOFT_DELETE_CASCADE
    title = models.CharField(max_length=100)
    author = models.ForeignKey(Author, on_delete=models.CASCADE)
    def __str__(self):
        return self.title

实现 AuthorBook 模型,两者都继承自 SafeDeleteModel 并具有软删除策略。

第 6 步:在 library/admin.py 中注册模型

# library/admin.py
from django.contrib import admin
from .models import Author, Book
admin.site.register(Author)
admin.site.register(Book)

在 Django 管理界面中注册 AuthorBook 模型。

第 7 步:进行迁移并应用更改

python manage.py makemigrations
python manage.py migrate

运行迁移以将更改应用到数据库模式。

第 8 步:创建超级用户

python manage.py createsuperuser

生成一个超级用户以访问 Django 管理界面。

第 9 步:在 library/serializers.py 中创建序列化器

# library/serializers.py
from rest_framework 

相关文章:

  • 【Docker项目实战】使用Docker部署ToDoList任务管理工具
  • 亮相CMEF,美的医疗全维度打造智慧医疗新生态
  • HTML的Canvas元素
  • 数字的乘阶运算
  • 零碳园区智慧能源解决方案
  • 【算法学习】链表篇:链表的常用技巧和操作总结
  • SvelteKit 最新中文文档教程(19)—— 最佳实践之身份认证
  • 控制 ElementUI el-table 树形表格多选框的显示层级
  • NLP高频面试题(三十七)——大模型训练和推理的显存估计
  • 深入解析原生鸿蒙中的 RN 日志系统:从入门到精通!
  • Go 语言中的select是做什么的
  • 什么是音频预加重与去加重,预加重与去加重的原理是什么,在什么条件下会使用预加重与去加重?
  • 今日踩坑之@Autowired与@Resource区别
  • 解锁ChatGPT-4o文生图潜力:精选提示词收集整理更新中
  • vLLM实战:单机多卡大模型推理部署指南
  • 天元证券|空仓一个月 这批新基金冲进去了!
  • Cadence学习笔记之---热风焊盘制作
  • 从ETL到ELT:大数据时代下两者的选型建议及优势
  • 指纹浏览器技术架构解析:高并发批量注册业务的工程化实践——基于分布式指纹引擎与防关联策略的深度实现
  • VSCode 常用快捷键
  • 华为官方商城网上商城/草根seo视频大全网站
  • 开福区城乡建设局网站/视频号关键词搜索排名
  • 景观网站设计网站/免费的seo优化
  • 上饶做网站建设/域名注册平台哪个好
  • 建设网站目的及功能定位是什么/seo怎么刷关键词排名
  • 做网站外包哪家好/传统营销和网络营销的区别