如何在django中删除用户?

问题描述 投票:0回答:2

这可能听起来是一个愚蠢的问题,但我很难使用此视图删除 django 中的用户:

@staff_member_required 
def del_user(request, username):    
    try:
        u = User.objects.get(username = username)
        u.delete()
        messages.sucess(request, "The user is deleted")
    except:
      messages.error(request, "The user not found")    
    return render(request, 'front.html')

在 urls.py 中我有

url(r'^del_user/(?P<username>[\w|\W.-]+)/$', 'profile.views.del_user'), 

相反,用户被删除,我得到

The user not found

这里可能出了什么问题?

python django django-users
2个回答
17
投票

您应该将代码更改为:

@staff_member_required 
def del_user(request, username):    
    try:
        u = User.objects.get(username = username)
        u.delete()
        messages.success(request, "The user is deleted")            

    except User.DoesNotExist:
        messages.error(request, "User doesnot exist")    
        return render(request, 'front.html')

    except Exception as e: 
        return render(request, 'front.html',{'err':e.message})

    return render(request, 'front.html') 

并在模板中显示

err
以查看更多错误消息


0
投票
@login_required
def del_user(request):
    user = request.user
    user.delete()
    redirect("login")

© www.soinside.com 2019 - 2024. All rights reserved.