Как перенаправить, используя имя представления в Django, представления на основе классов?

Мне нужно перенаправить из одного представления на основе класса в другое представление на основе класса. Я сделал это следующим образом:

return redirect('report')

но было предложено перенаправить по именам видов. Я попробовал это, но это не работает

views.py:

class UploadView(View):
    def get(self, request, *args, **kwargs):
        Reservation.objects.all().delete()
        template = "ReportApp/upload.html"
        return render(request, template)

    def post(self, request, *args, **kwargs):
        # try:
        csv_file = request.FILES['file']
        data_set = csv_file.read().decode('UTF-8')
        # setup a stream which is when we loop through each line we are able to handle a data in a stream
        io_string = io.StringIO(data_set)

        next(io_string)
        for column in csv.reader(io_string, delimiter=',', quotechar="|"):
            _ = Reservation.objects.update_or_create(
                reservation_code=column[0],
                checkin=column[1],
                checkout=column[2],
                flat=column[3],
                city=column[4],
                net_income=column[5],
            )
        # return redirect('report')
        return redirect(ReportView.as_view())

upload_view = UploadView.as_view()


class ReportView(View):
    def get(self, request, *args, **kwargs):

urls.py:

from .views import upload_view, report_view, city_commission_view, error_view
from django.urls import path


urlpatterns = [
    path('upload', upload_view, name='upload'),
    path('report', report_view, name='report'),
    path('city_commission', city_commission_view, name='city_commission'),
    path('error', error_view, name='error'),
]

есть предложения, как это сделать?

Не уверен, чего вы хотите добиться, и не вижу кода для class ReportView(View): def get(self, request, *args, **kwargs):

но, возможно, вы могли бы попробовать что-то вроде этого:

from django.views.generic import RedirectView

    class ReportView(RedirectView):
    def get_redirect_url(self, *args, **kwargs):
        url_params = self.kwargs

и поиграть с этим.

Вернуться на верх