这一章将实现删除用户数据的功能。实际上删除用户和前面的删除文章是完全类似的,有了之前的铺垫,这一章会非常的轻松。
权限与视图
用户数据是很多网站最重要的财产,确保用户数据的安全是非常重要的。
前面学习的用户登录、退出、创建都是相对安全的操作;而删除数据就很危险,弄不好会造成不可逆的损失。因此我们希望对操作者做一些限制,比如只能用户登录且必须是本用户才能进行删除的操作。这就是权限。
因此在视图中进行简单的用户权限的验证工作。编写/userprofile/views.py
:
/userprofile/views.py
from django.contrib.auth.models import User
# 引入验证登录的装饰器
from django.contrib.auth.decorators import login_required
...
@login_required(login_url='/userprofile/login/')
def user_delete(request, id):
if request.method == 'POST':
user = User.objects.get(id=id)
# 验证登录用户、待删除用户是否相同
if request.user == user:
#退出登录,删除数据并返回博客列表
logout(request)
user.delete()
return r