【发布时间】:2023-04-02 10:33:01
【问题描述】:
我想允许用户删除他的帐户,删除后,我希望用户退出并查看 html 页面account_deleted.html 进行确认。
学生/views.py:
def delete_account(request):
user = User.objects.get(username=request.user)
user.delete()
context = {
"deleted_msg": "Account has been deleted",
}
return render(request, "students/account_deleted.html", context) and redirect("students:logout")
对于注销,我使用的是内置的 LogoutView 功能。我的 settings.py 中的注销重定向 URL 设置为我的主页。
学生/urls.py:
path('logout/', LogoutView.as_view(), name='logout'),
如果账户被删除,如何让delete_account(request) 函数同时返回渲染和重定向?这甚至可能吗?
谢谢!
【问题讨论】:
-
为什么要在删除用户后注销用户没有意义
-
我认为简单的解决方案是将按钮添加到
account_deleted.html以手动重定向到登录而不是注销页面,或者通过js进行。 -
@c.grey 因为即使在删除帐户后,用户似乎也已登录。当我尝试访问用户个人资料时,网站显然崩溃了。
-
redirect只是带有301或302代码的响应。您可以在响应中包含正文,但对于正确的重定向响应,它不会被呈现,浏览器将重定向到新位置。 -
为了防止网站崩溃,您需要在需要用户的地方添加登录所需的装饰器
标签: django django-users