У меня есть сборка API с Django каркасом отдыха.
Есть пост, где пользователь вводит некоторые данные, И, на мой взгляд, метод извлечения, который отображает страницу 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)