简体   繁体   English

如何防止用户在 Django 中提交后返回表单(所有表单登录、编辑帖子等)?

[英]how to prevent user from going back to form (all forms login, edit post, etc.) after submission in django?

I'm new to django and I'm stuck with a problem.我是 Django 的新手,但遇到了一个问题。 Please help me solve it.请帮我解决它。

Problem: Whenever I fill a form, be it a login form, edit post form, create post form, etc..If I press browser's back button, It takes me back to it.问题:每当我填写表单时,无论是登录表单、编辑帖子表单、创建帖子表单等。如果我按下浏览器的后退按钮,它会带我回到它。

What I want: Redirect the user to somewhere else rather than taking them back to form.我想要的是:将用户重定向到其他地方,而不是将他们带回表单。 Is there any way to perform it in django ?有没有办法在 django 中执行它? I want to use CBVs only我只想使用 CBV

"and yes, I don't wanna disable browser back button !" “是的,我不想禁用浏览器后退按钮!”

Code:代码:

views.py 视图.py

 class CreatePost(LoginRequiredMixin, UserPassesTestMixin, CreateView): model = Post template_name = 'blog/create_post.html' fields = ('category', 'title', 'meta_title', 'meta_description', 'content', 'image', 'image_alt_text') user_check_failure_path = 'blog-home' def test_func(self): return self.request.user.is_superuser def handle_no_permission(self): if self.request.user.is_authenticated: messages.error(self.request, 'Permission Denied ! Only SUPERUSER can access this page', 'danger h4') return redirect('blog:blog-home') else: return redirect('accounts:login') class Login(views.LoginView): template_name = 'accounts/login.html' redirect_authenticated_user = True

In your settings.py file, set: LOGIN_REDIRECT_URL = 'blog:blog-home'在您的 settings.py 文件中,设置: LOGIN_REDIRECT_URL = 'blog:blog-home'
This will redirect a user to the blog-home URL whenever they successfully login.每当用户成功登录时,这会将用户重定向到 blog-home URL。

In your CreatePost view, you should include a success_url = 'blog:blog-home在您的 CreatePost 视图中,您应该包含一个success_url = 'blog:blog-home
Or in some cases you can even use: success_url = reverse_lazy('blog:blog-home')或者在某些情况下你甚至可以使用: success_url = reverse_lazy('blog:blog-home')
This will redirect the user to the specified URL upon successfully submitting a form.成功提交表单后,这会将用户重定向到指定的 URL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Django forms 用于测验应用程序(如何在提交后禁用表单) - Django forms for quiz app ( how to disable a form after submission ) Django / JQuery:无法使用JQuery停止Django表单提交(preventDefault()等无法正常工作) - Django/JQuery: can't stop Django form submission with JQuery (preventDefault(), etc. not working) 在 Django 中提交表单后如何将用户重定向到详细视图页面 - How to redirect the user to the detailview page after form submission in Django django:提交表单后从数据库中读取 - django: reading from database after form submission JS前端框架(ember,Angular等)如何与后端框架(例如Django,Rails等)一起使用? - How does JS front-end framework (ember, Angular etc.) work with back-end frameworks(such as Django , Rails etc.)? Google 和 Aol 等网站如何阻止用户在登录后访问登录表单? - How do sites like Google and Aol prevent the user from accessing the login form after logging in? 如何防止用户在 24 小时后更新帖子 django - how to prevent user to update a post after 24 hours django 提交 Django 表单后不重定向 - Not Redirect after submission the Django Forms 在Django中,如何从模型/子项预先填充编辑表单,但将提交保存为新实例? - In Django, how can I pre-populate an edit form from a model/child, but save submission as new instance? 如何在Ajax POST提交后(Django形式)允许页面刷新/重定向 - How to allow page refresh/redirect after Ajax POST submission (of Django form)
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM