【Django】模型delete返回值判断

本文介绍了如何在Django中通过QuerySet的delete方法进行模型删除,并根据返回值判断删除是否成功。示例代码展示了成功和失败的情况,以及如何根据返回的元组中的第一个元素进行判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

例子:

result = DmsSysUser.objects.filter(id=request.POST.get('id')).delete()

print(type(result))

print(result)

删除成功,结果如下:

<class ‘tuple’>

(1,{‘DMS.DmsSysUser’:1})

 

删除失败,结果如下:

<class ‘tuple’>

(0,{‘DMS.DmsSysUser’:0})

 

result = DmsSysUser.objects.filter(id__gt=1).delete()

print(type(result))

print(result)

结果如下:

<class ‘tuple’>

(4,{‘DMS.DmsSysUser’:4})

 

Performs an SQL delete query on all rows in the QuerySet and returns the number of objects deleted and a dictionary with the number of deletions per object type.

 

综上可直接这样判断:

if DmsSysUser.objects.filter(id=deleteID).delete()[0] :
       print('成功')

else:

      print('失败')

 

 

官方文档资料:

### Django 中使用 Session 保持会话的指南 在 Django 中,Session 是一种强大的工具,用于在用户的多次请求之间保存状态信息。以下是关于如何配置和使用 Django Session 的详细介绍。 #### 配置 Session 功能 为了使 Django 支持 Session 功能,需要确保以下两项已正确配置: 1. **`MIDDLEWARE` 设置** 在 `settings.py` 文件中的 `MIDDLEWARE` 列表中添加 `'django.contrib.sessions.middleware.SessionMiddleware'`,这是启用 Session 功能的关键中间件[^1]。 2. **`INSTALLED_APPS` 设置** 同样,在 `settings.py` 文件中的 `INSTALLED_APPS` 列表中添加 `'django.contrib.sessions'` 应用程序。该应用程序提供了必要的数据库模型和其他支持功能来管理 Session 数据[^3]。 完成上述两步后,Django 就可以正常处理 Session 请求了。 --- #### 存储与读取 Session 数据 一旦启用了 Session 功能,就可以通过 `request.session` 对象轻松存储和检索数据。下面是一个简单的例子,展示了如何操作 Session 数据: ```python from django.http import HttpResponse def set_session(request): request.session['key'] = 'value' return HttpResponse('Session 已设置') def get_session(request): value = request.session.get('key', '默认值') return HttpResponse(f'Session 值为: {value}') ``` - 上述代码片段演示了如何向 Session 添加键值对 (`set_session`) 并从中获取值 (`get_session`)。 - 如果指定的键不存在,则可以通过 `.get()` 方法提供一个默认返回值[^4]。 --- #### 删除 Session 数据 如果不再需要某些 Session 数据,可以直接将其删除。例如: ```python def delete_session(request): if 'key' in request.session: del request.session['key'] return HttpResponse('Session 被成功删除') else: return HttpResponse('没有找到对应的 Session 键') ``` 这段代码检查是否存在名为 `'key'` 的 Session 条目,并在存在的情况下将其移除。 --- #### 自定义 Session 行为 除了基本的操作外,还可以自定义一些高级行为,例如调整超时时间或强制清除过期的 Session 记录。 1. **设置全局超时时间** 可以通过修改 `SESSION_COOKIE_AGE` 参数来自定义整个项目的 Session 过期时间(单位为秒)。例如: ```python SESSION_COOKIE_AGE = 1209600 # 默认两周 (1209600 秒) ``` 2. **单个 Session 的个性化超时** 若要针对某个特定用户设定不同的超时策略,可以在视图函数中调用 `set_expiry()` 方法: ```python def custom_timeout(request): request.session.set_expiry(3600) # 半小时后失效 return HttpResponse('设置了个性化的 Session 超时时间') ``` 3. **集成安全扩展** 若希望进一步增强安全性,可考虑引入第三方库如 `django-session-security`。它允许开发者更精细地控制用户会话的安全性,例如通过设置警告时间和自动登出时间实现更高的防护水平[^2]。 --- #### 注意事项 - 默认情况下,Django 使用数据库作为 Session 的存储后端。这意味着每次写入或读取 Session 数据都会涉及一次数据库查询。 - 如果性能成为瓶颈,可以选择其他存储方式,例如缓存(Redis 或 Memcached),只需更改 `SESSION_ENGINE` 和相关参数即可[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值