提交表单后如何重定向页面?

Posted

技术标签:

【中文标题】提交表单后如何重定向页面?【英文标题】:How to redirecting page after post submit form? 【发布时间】:2020-09-13 02:42:50 【问题描述】:

我有一个如下所示的提交表单:

<form id="form_id" method="POST" action="https://127.0.0.1:8000/api/node">
    <h1>Add Node</h1>
    <h4>Node ID</h4>
    <div class="name">
      <input type="text" name="name" placeholder="node id" id="node_id" />
    </div>
<h1>Get the latitude and longitude of the node</h1>

<p>
    latitude: <span id="latitude"></span><br />
    longitude: <span id="longitude"></span>
</p>
<style>
    #node1Map  height: 260px; 
  </style>
  <div id="node1Map"></div>
<script>
const mymap = L.map('node1Map').setView([0, 0], 1);
const attribution ='&copy: <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors';

const tileUrl = 'https://s.tile.openstreetmap.org/z/x/y.png';
const tiles = L.tileLayer(tileUrl,  attribution );
tiles.addTo(mymap);

 // get coordinate
 var latitude, longitude, marker;
 mymap.on('click', function(e) 
 if(marker) mymap.removeLayer(marker);
 latitude = e.latlng.lat;
 longitude = e.latlng.lng;
 console.log(latitude);
 console.log(longitude);
 marker = L.marker([latitude, longitude]).addTo(mymap);
 document.getElementById('latitude').textContent = latitude;
 document.getElementById('longitude').textContent = longitude;
 );
</script>

<h4>Location Address</h4>
<input type="text" id="location" />       
<div class="btn-block">
<button type="submit" href="/">Submit</button>
</div>
</form>
</body>
</html>

我现在的情况是: 1. 我提交表单,然后表单中的数据将保存在我的 django rest API (https://127.0.0.1:8000/api/node) 2.页面重定向到我在https://127.0.0.1:8000/api/node中的django rest API页面。显示我保存的 json 数据。

但我现在想要的是: 1. 我提交表单,然后表单中的数据将保存在我的 django rest API (https://127.0.0.1:8000/api/node) 2.页面没有重定向到我在https://127.0.0.1:8000/api/node中的django rest API。但重定向到我想要的另一个网址。例如:页面将重定向到https://127.0.0.1:8000/listdata。

我该怎么做?

【问题讨论】:

在第三步(成功后)设置一个变量,如 'success = 1' 并在 .../api/node 设置 if 语句以检查是否成功 = 1,如果是则重定向到 . .../列表数据 【参考方案1】:

使用重定向功能:

在您的视图中导入它

from django.shortucts import redirect

然后在你保存你的值之后使用它:

return redirect(<your views function to were you went to send>)

【讨论】:

我在哪里放置return redirect() ?我的views.py中有两个类。第一个是用于呈现 html 表单页面的类,另一个是用于呈现 html 列表数据页面的类。 # 在此处创建您的视图。 class NodeList(View): #this is for listdata page def get(self, request, *args, **kwargs): return render(request, 'nodelist.html') class AddNode(View): #this is for form page def get(self, request, *args, **kwargs): return render(request, 'addnode.html') class AddNode(View): #你把它放在你的渲染函数上面

以上是关于提交表单后如何重定向页面?的主要内容,如果未能解决你的问题,请参考以下文章

提交表单后如何重定向页面?

重定向到同一页面php后避免表单重新提交[重复]

在 Laravel 中提交表单后如何重定向确认页面?

联系表单提交后如何重定向到感谢页面 - Wordpress 高级主题联系我们 php 模板 [关闭]

提交表单后重定向到另一个页面?

如果表单提交成功并保留在页面上,如何使用js进行重定向