Django redirecting to a different view in another app

Edwarric

There are many similar questions to mine on Stack Overflow, but none which solve my problem.

I have a class-based view which accepts files, and once a valid file is found, I would like the website to redirect the user to a template inside a different app, passing in some parameters.

I've seen others put an extra path in 'urlpatterns' and get the view from there. But doing this only makes a GET signal on my command prompt, but not actually changing the web url.

views.py

from django.shortcuts import render, redirect   # used to render templates
from django.http import JsonResponse
from django.views import View

from .forms import UploadForm
from .models import FileUpload

class UploadView(View):
    def get(self, request):
        files_list = FileUpload.objects.all()
        return render(self.request, 'upload/upload.html', {'csv_files': files_list})

def post(self, request):
    form = UploadForm(self.request.POST, self.request.FILES)
    if form.is_valid():
        csv_file = form.save()
        data = {'is_valid': True,
                'name': csv_file.file.name,
                'url': csv_file.file.url,
                'date': csv_file.uploaded_at}
        # REDIRECT USER TO VIEW PASSING 'data' IN CONTEXT
        return redirect('graph:chart', file_url=csv_file.file.url)
    else:
        data = {'is_valid': False}
    return JsonResponse(data)

urls.py

from django.urls import path
from . import views

app_name = "upload"

urlpatterns = [
    path('', views.UploadView.as_view(), name='drag_and_drop'),
]

urls.py (of other app)

from django.urls import path
from . import views

app_name = "graph"

urlpatterns = [
    path('', views.page, name='chart'),
]
vctrd

You can specify an app name and use exactly the redirect shortcut as you started: https://docs.djangoproject.com/en/2.1/topics/http/urls/#naming-url-patterns

in the other app urls.py define app_name = 'other_app', and then use redirect(other_app:url_name', parameter1=p1, parameter2 = p2)

you can name easily your parameters either using path (Django >=2.0) or url (re_path for Django >=2.0), for instance:


from django.urls import path

from . import views

urlpatterns = [
    path('articles/<int:year>/<int:month>/<slug:slug>/', views.article_detail),
    re_path(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),
]

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

Redirecting a View to another View in Django Python

Django redirecting to wrong view in other app

Redirecting to root URL from another app's view

Django redirecting to wrong view

Redirecting into another page in Django

view in one app is not recognized by different view - Django

Django NoReverseMatch when redirecting to view

django view render to template from another app

Django web app not redirecting and not posting

Pass a rendered view to another app's view in Django

Rails Route Redirecting to different view by default

Redirecting to different view after an AJAX call Laravel

Calling controller, but not redirecting to another view immediately

python - Django built in login view not redirecting to next

Redirecting to an external website from django view

Search field in Django is not redirecting to detail view

Filtering and redirecting in a django view not performing as expected

Django auto redirecting to url folder of a different project

Django url error ( Redirecting to another url)

Django,DRF, get another app's view name for a reverse

Laravel 7 - Redirecting different user roles to different view

Redirecting to a view

View with more than one button redirecting to different pages

Redirecting from one route to another in my laravel 4 and angularjs app

Stop WKWebView redirecting to another app based on Universal link

Not redirecting to my own view after login with Django and AllAuth

Django: Delete View with Javascript Confirmation without redirecting to Template

Redirecting to external page from django class based view

Django URLs file redirecting the different URLs to the wrong html files

TOP Ranking

  1. 1

    Failed to listen on localhost:8000 (reason: Cannot assign requested address)

  2. 2

    Loopback Error: connect ECONNREFUSED 127.0.0.1:3306 (MAMP)

  3. 3

    How to import an asset in swift using Bundle.main.path() in a react-native native module

  4. 4

    pump.io port in URL

  5. 5

    Compiler error CS0246 (type or namespace not found) on using Ninject in ASP.NET vNext

  6. 6

    BigQuery - concatenate ignoring NULL

  7. 7

    ngClass error (Can't bind ngClass since it isn't a known property of div) in Angular 11.0.3

  8. 8

    ggplotly no applicable method for 'plotly_build' applied to an object of class "NULL" if statements

  9. 9

    Spring Boot JPA PostgreSQL Web App - Internal Authentication Error

  10. 10

    How to remove the extra space from right in a webview?

  11. 11

    java.lang.NullPointerException: Cannot read the array length because "<local3>" is null

  12. 12

    Jquery different data trapped from direct mousedown event and simulation via $(this).trigger('mousedown');

  13. 13

    flutter: dropdown item programmatically unselect problem

  14. 14

    How to use merge windows unallocated space into Ubuntu using GParted?

  15. 15

    Change dd-mm-yyyy date format of dataframe date column to yyyy-mm-dd

  16. 16

    Nuget add packages gives access denied errors

  17. 17

    Svchost high CPU from Microsoft.BingWeather app errors

  18. 18

    Can't pre-populate phone number and message body in SMS link on iPhones when SMS app is not running in the background

  19. 19

    12.04.3--- Dconf Editor won't show com>canonical>unity option

  20. 20

    Any way to remove trailing whitespace *FOR EDITED* lines in Eclipse [for Java]?

  21. 21

    maven-jaxb2-plugin cannot generate classes due to two declarations cause a collision in ObjectFactory class

HotTag

Archive