python - Django rest框架,发布后重定向
问题描述
我有一个使用 Django 休息框架的 API 构建。
有一个帖子,用户输入了一些数据,并且,在我的视图中有一个检索方法,它根据帖子中的数据呈现一个 HTML 页面。
帖子中有一个名为“mission_name”的字段,它是一个主键,因此当用户将任务名称插入到 URL 行的末尾时,它会运行检索方法。
任务名称:testredirect
http://127.0.0.1:8000/twosecondgdt/testredirect/
将打开页面。
如何在成功发布后重定向检索方法?
# views.py
from __future__ import absolute_import
from django.shortcuts import render
from rest_framework.viewsets import ModelViewSet
from Project_Level.database_consts import THREE_POINTS_TRINAGULATION
from Project_Level.postgres_queries import HTMLFileInteractionWithDB
from .serializers import PointsSerializer
from .models import Points
from Project_Level.base_objects import GeoPoint
from .second_GDT_finding.app import MainApp
class PointsViewSet(ModelViewSet):
# Return all missions ordered by id, reversed.
queryset = Points.objects.all().order_by('-id')
serializer_class = PointsSerializer
data = queryset[0]
serialized_data = PointsSerializer(data, many=False)
points = list(serialized_data.data.values())
def retrieve(self, request, *args, **kwargs):
mission_name = self.points[1]
assign_gdt = GeoPoint(lat=self.points[2], long=self.points[3])
gdt1 = [assign_gdt.get_lat(), assign_gdt.get_long()]
assign_uav = GeoPoint(lat=self.points[4], long=self.points[5], elevation=self.points[6])
uav = [assign_uav.get_lat(), assign_uav.get_long(), assign_uav.get_elevation()]
area_name = f"'{self.points[-2]}'"
try:
# Check if a file already exists in the DB.
HTMLFileInteractionWithDB.table = THREE_POINTS_TRINAGULATION
openfile = HTMLFileInteractionWithDB.return_file_from_db(mission_name=mission_name)
print('File was fetched from DB')
return render(request, openfile)
except:
# If no map was plotted, create a new one.
main = MainApp.run(gdt1=gdt1, uav=uav, mission_name=mission_name, area=area_name)
print('New file created')
return render(request, main)
解决方案
推荐阅读
- python - 使用 numpy 按列升序对 3D 数组进行排序
- mysql - SQL 查询在 MySQL 中运行良好,但在 PostgreSql 中出错
- reporting-services - SSRS:单击查看报告,然后显示空白
- python - 将值插入整数排序列表的最有效方法是什么?
- python - 如何使用模式从字符串中提取数字?
- java - 如何处理 Android 中的 OutOfMemoryError
- android - 方向更改后无法在 Firebase 任务执行中访问重新创建的活动
- vega - 在 Vega 中创建新的配色方案
- python-3.x - 如何在pyplot中删除右下角的“标签”
- azure - 资源组下的资源“Microsoft.Web/sites/abc-rg”
' 没找到