Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在django中提交而不刷新_Python_Ajax_Django_Submit - Fatal编程技术网

Python 在django中提交而不刷新

Python 在django中提交而不刷新,python,ajax,django,submit,Python,Ajax,Django,Submit,我有一个html表单和提交按钮(它可以添加或删除许多“用户”字段中的关系): 此函数工作正常,但提交表单后页面会刷新。我不需要刷新,我需要改变按钮文本,就像推特上的“跟随”按钮一样。我尝试使用一些jquery\ajax,但我不太明白它应该如何工作。谁能解释一下怎么做吗?谢谢。这里是一个非常基本的ajax示例。在表单中,您可以使用以下命令启动ajax方法: <a onclick="AjaxFormSubmit()" href="#">Submit</a> 我建议您查看,以

我有一个html表单和提交按钮(它可以添加或删除许多“用户”字段中的关系):


此函数工作正常,但提交表单后页面会刷新。我不需要刷新,我需要改变按钮文本,就像推特上的“跟随”按钮一样。我尝试使用一些jquery\ajax,但我不太明白它应该如何工作。谁能解释一下怎么做吗?谢谢。

这里是一个非常基本的ajax示例。在表单中,您可以使用以下命令启动ajax方法:

<a onclick="AjaxFormSubmit()" href="#">Submit</a>
我建议您查看,以查看所有可用的Ajax方法

此外,在您的视图中,您需要通过HttpResponse返回(在本例中)json数据。i、 e

return HttpResponse(json.dumps(your_data))
# I like to return success/fail Booleans, personally

*请注意,这是未经测试的代码。

您可以发布您尝试过但不起作用的ajax/javascript吗?它产生了什么错误?@Curtisson我认为我尝试的东西完全没有意义,所以我无法理解如何使这个提交按钮像twitter的follow按钮一样。我应该把这个ajax方法放在哪里?放在表单下面的某个地方或外部.js文件中。如果使用外部.js文件,显然无法使用django的模板语法处理
event.id
,但您可以将其作为参数传递给
AjaxFormSubmit
,在GET查询中删除和添加值在代码中的何处?我建议您使用POST方法,因为您正在添加/删除记录,您还需要通过带有数据参数的方法传递表单数据。我会更新我的答案。我还建议先试用Ajax,了解它的工作原理。尝试使用它发出get请求,并且只从视图返回布尔值。然后你就会知道你的方向是正确的。
<a onclick="AjaxFormSubmit()" href="#">Submit</a>
function AjaxFormSubmit() {
    $.ajax({
        url : '/event/{{ event.id }}/',
        type : "POST",
        data : { the_post : $('#id-of-your-field').val() }
    }).done(function(returned_data){

        // This is the ajax.done() method, where you can fire events after the ajax method is complete 

        // For instance, you could hide/display your add/remove button here

    });
}
return HttpResponse(json.dumps(your_data))
# I like to return success/fail Booleans, personally