Django остальные рамки, перенаправление после создания поста - PullRequest
0 голосов
/ 26 марта 2020

У меня есть сборка 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)
...