gpt4 book ai didi

jquery - 如何在单个 django View 中传递多个 ajax 调用

转载 作者:行者123 更新时间:2023-12-01 04:13:27 24 4
gpt4 key购买 nike

我有一个带有多个按钮的表单,它映射到 django View 。喜欢:

<form name="demo-form" method="POST" action="{% url 'internalManifest' %}">
<button class="btn btn-success" name="start_manifest">Start Manifest</button>
<button class="btn btn-success" name="close_manifest">Close Manifest</button>
</form>

上面的两个按钮从 models.py 调用两种不同的方法,但我可以从单个 django View 中完成它。喜欢:

Django View :

if request.method == 'POST' and 'start_manifest' in request.POST:
call_function1()
if request.method == 'POST' and 'close_manifest' in request.POST:
call_function2()

我的问题是,如何根据按钮名称将两个不同的ajax请求发送到同一个 View 函数?

假设我有 2 个 ajax 请求。两者都从 models.py 调用不同的方法。我想根据按钮名称发送 ajax 调用。像:

jQuery(document).ready(function($){
$('[name="form_internal_manifest"]').on('submit', function(event){
event.preventDefault();
$.ajax({
url : "/internalmanifest/",
type : "POST",
...

jQuery(document).ready(function($){
$('[name="form_internal_manifest"]').on('submit', function(event){
event.preventDefault();
$.ajax({
url : "/internalmanifest/",
type : "POST",
...

最佳答案

您可以在 AJAX 请求中发送一些数据,这将区分这两个功能:

jQuery(document).ready(function($){
$('[name="form_internal_manifest"]').on('submit', function(event){
event.preventDefault();
$.ajax({
url : "/internalmanifest/",
type : "POST",
data: {action: 'start_manifest'},
...

jQuery(document).ready(function($){
$('[name="form_internal_manifest"]').on('submit', function(event){
event.preventDefault();
$.ajax({
url : "/internalmanifest/",
type : "POST",
data: {action: 'close_manifest'},
...

您发送的数据将在 request.POST 字典对象中可用,因此您可以按如下方式对其进行调整:

if request.method == 'POST' and request.POST['action'] == 'start_manifest':
call_function1()
if request.method == 'POST' and request.POST['action'] == 'close_manifest':
call_function2()

关于jquery - 如何在单个 django View 中传递多个 ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34609051/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com