Shallow Dreamer Blog

动态表格

<script setup> import { defineProps, defineEmits, useAttrs, ref, defineComponent } from 'vue' import { ElTable, ElTableColumn, ElPagination } from 'element-plus' const props = defineProps({ ...

分页装饰器

下面是一个完整的分页装饰器代码示例,结合了Django的model.objects.filter()来获取数据,并支持分页。这个装饰器会根据前端传递的分页参数和筛选条件来获取、过滤并分页返回数据。 假设你的数据是通过Django模型来获取的,并且筛选参数不确定,可以用Django的**kwargs来动态处理筛选条件。下面是完整代码: from functools import wraps...

删除对象的指定键

要从嵌套的对象中删除指定的键,可以使用递归方法遍历整个对象,并在每一层检查是否存在该键。如果存在,就删除它。下面是一个实现示例: 删除嵌套对象中的指定键 def delete_key_from_nested_dict(nested_dict, key_to_delete): if not isinstance(nested_dict, dict): return ...

vue3导出word

要将页面中的图片 DOM 元素和表格按顺序导出到 Word 文档中,我们可以在 contentArray 中添加一个标识,来处理从 DOM 中获取的图片。这是更新后的通用组件。 更新的通用组件 <template> <div> <button @click="exportToWord">导出 Word 文档</button...

三层表头设计数据库方案

是的,除了使用单个数据表和一个表头字段对应表的方案,还有其他方式能够实现当前需求。可以根据不同的需求和复杂性选择更适合的方案。以下是几种不同的设计方案: 方案一:多表设计(范式化数据库设计) 这是典型的范式化设计,通过多个表来处理不同层次的数据以及表头映射关系。这种设计能更好地维护数据的完整性和查询性能,但复杂性相对较高。 表设计 Category表(大类) ...

drf数据校验批量写入

如果你已经在 Django 项目的设置中将每个请求设置为一个事务,结合你在序列化器中的实现可以确保事务的自动管理。这意味着每个请求都将在一个数据库事务中处理,以下是如何整合这个特性: 1. 在序列化器中进行逐一检查 你可以继续使用之前的自定义序列化器。在这里,我们不需要显式地使用 transaction.atomic(),因为 Django 会自动为每个请求处理事务。 2. 序列化器的...

根据参数设置不同的权限控制

如果已经使用用户的 session 实现了权限控制,并且现在需要在 Django 的 APIView 中添加基于 session 的权限控制,可以结合 Django 的权限系统和 permissions 机制实现。具体来说,你可以基于用户的权限信息或 session 数据来决定是否允许执行某个操作。 你可以通过重写 get_permissions 方法或直接在视图方法中手动检查用户的 se...

dayjs计算天数时间差

为了实现每天只提醒一次的功能,你可以结合 localStorage 来存储提醒的状态,这样可以确保在浏览器中存储上一次提醒的时间,并在每次页面加载时检查是否已经提醒过。如果没有提醒,则进行提醒并记录当天的日期。以下是实现的步骤: 代码实现 <template> <div> <p>当前时间: </p> <p>过...

删除不在数据库中的s3文件

为了提升性能,可以通过以下几种优化方式来加快清理不再被引用的S3文件的过程,特别是对于大规模文件操作和复杂数据库遍历的场景: 性能优化方案: 批量查询数据库: 避免一次性加载所有数据,而是分批次从数据库中获取数据,减少内存压力。例如,使用Django的iterator()方法来节省内存。 # 批量迭代获取数据库中的附件信息 def get_...

鼠标移出elselectv2下拉选择框收起

<template> <div v-for="(item, index) in selectData" :key="index" class="select-container"> <el-select-v2 v-model="selectedValues[index]" placeholder="请选择" ref...