Wie übergebe ich Variablen von einer Ansicht zur anderen und rendere mit der URL der letzten Ansicht in Django?

Ich baue mit Django ein Studentenverwaltungssystem auf.

In diesem Code sucht der Benutzer nach einem Schüler mit der verschlüsselten Abfragename=StudentName&grade=Grade&id=StudentID&phone=ParentPhoneNumber&report=StudentReportNumber, das wird mit dem @ extrahiedecrypt() Methode

Hier sind die beiden Methoden, die die Abfrage verarbeiten und die, die das Schülerprofil anzeigt.

Keine Daten aus der Abfrage werden in der Datenbank gespeichert, aber zum Abfragen der Schülerdaten aus der Datenbank verwendet.

def process_query(request):
    # process the query from the url /?details={{ some hashes here }}

    if request.method == 'GET':
        raw_deatils = request.GET.get('details', None)
        if raw_deatils:
            details = decrypt(raw_deatils)
            # decrypt is a function that is defined
            # in the utils which takes the input string,
            # check predeifined tests to test if valid.
            # and return the decrypted query string else None

            if details:

            # now the decrypted message looks something like this.
            # name=StudentName&grade=Grade&id=StudentID&phone=
            # ParentPhoneNumber&report=StudentReportNumber
            # some more processing pulls out value to variables,

                name = details['StudentName'],
                grade = details['Grade'],
                student_id = details['StudentID'],
                phone = details['ParentPhoneNumber'],
                report = details['StudentReportNumber'],
                search_token = details['token']
                return redirect("somewhere I'm stuck")
            else:
                # encryption error, so redirect user to query page
        else:
            # error with submission redirect to query page
    else:
        # error with method. redirect to homepage.

def student_profile(request, name=None, grade=None, student_id=None):
# token to be added??

    # some data processing to get marks,
    # progress report. etc
    if student_id:
        context = {
            'name' : name,
            'grade' : grade,

            'student_id' : student_id,
            'report' : report,
            'marks': {
                # another dictionary of dictionaries
                # as the product of the processing
            },
            'token' : token,
            'attendance': {
                # another dicitonary of stuff.
            }
    else:

        context = {
            'name' : name,
            'grade' : grade,
        }

    return render(request, 'students/profile/single.html', context)

urls dafür,

url(r'^go/$', 'students.views.process_query' name='process_view'),
url(r'^profile/(?P<name>[a-zA-Z]{1,20})/(?P<grade>[a-zA-Z]{1,20})$',
 'students.views.student_profile', name='profile_view'),

wheneverprofile_view wird ohne 'process_view' aufgerufen, nur der Name und die Note sollten angezeigt werden. Wenn dasprofile_view wird vom @ initiieprocess_view Der Kontext mit Anwesenheit und Noten sollte gerendert werden.

Dies funktioniert bis zumprocess_view umleiten, aber ich habe keine Ahnung, wo ich umleiten soll (oder sollte ich überhaupt umleiten?stecke) und das @ aufrufprofile_view.

So die Zusammenfassung der Frage,

Wie leite ich von @ uprocess_view zuprofile_view ohne Daten zu verlieren, die in @ gesammelt wurdprocess_view zumprofile_view und rendere den Inhalt mit der URL vonprofile_view? Ich will das @ nictoken undstudent_id wird in der URL angezeigt.

Vielen Dank für alle Vorschläge / Hilfe.