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

У меня есть djna go rest framework RestAPI.

Мое представление берет данные из последнего объекта пользователем и отображает HTML файл им.

I хочу, чтобы когда пользователь отправлял запрос на публикацию, он автоматически перенаправлял на созданный файл.

В настоящее время у меня есть метод извлечения вручную, который при добавлении поля id / первичного ключа (имя миссии в коде) в строка url, она открывает сгенерированный файл.

Я действительно заблудился во всех руководствах и документах в Интернете, и то, что я должен использовать, перенаправление на маршруты, декоратор, URL-адреса и так далее ...

Код:


#views.py
imports..

class PointsViewSet(ModelViewSet):
    # Return all order 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())

    # I guess some kind of route belongs here...
    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)




...