【发布时间】:2020-03-05 10:49:14
【问题描述】:
我目前正在编写一个聊天应用程序。为了接受用户输入,我使用了一个表单,因此使用了一个 FormView 和一个自定义表单,遵循 Django-Docs。我必须设置一个success_url,但既不想在成功的POST 上被重定向到另一个页面,也不想重新加载聊天页面。我该怎么做?
我已阅读以下帖子:Django FormView, Return without redirecting,但我并不真正理解答案的重点。我真的应该避免不重定向吗?如果没有,我真的可以用 JQuery-Ajax 实现吗?这和Django的success_url不冲突吗?
感谢您的回答!
【问题讨论】:
-
请发布您的代码,以便我们查看可能导致错误的原因
-
@KJTHoward 没有错误。我是一个普遍的问题。我应该发布一些代码吗?如果是,您需要哪个代码?
-
使用普通的html表单,提交表单时页面会被重新加载或重定向。通常,浏览器会发出 POST 请求以将表单数据发送到服务器,然后服务器会发回一个新页面。如果你想制作一个典型的聊天应用程序,你将需要使用 JavaScript 和 AJAX。
-
好的,感谢您的回答@FiddleStix。问题是,我想将消息存储在数据库中,我认为使用 Django 的 Form-Infrastructure 是最简单的,所以纯 Javascript/Ajax 是不可能的。我能做什么?
-
如果您想使用 Django Forms,那么您将不得不忍受每当用户发送消息时重新加载页面。这可能是可以接受的。否则,我会使用例如Django Rest Framework 和一些 JavaScript,以便 Django 可以验证和保存您的所有消息,并且 JavaScript 可以处理前端。例如,请参阅this tuturial。
标签: python django django-views chat