Como passar variáveis de uma view para outra e renderizá-las com o URL da última view no Django?

Estou construindo um sistema de gerenciamento de estudantes usando o Django.

Nesse código, o usuário procura um aluno com a consulta criptografadaname=StudentName&grade=Grade&id=StudentID&phone=ParentPhoneNumber&report=StudentReportNumber, que é extraído com odecrypt() método.

Aqui estão os dois métodos, aquele que processa a consulta e o que mostra o perfil do aluno.

Nenhum dado da consulta é salvo no banco de dados, mas será usado para consultar os detalhes do aluno no banco de dados.

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 para isso,

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'),

sempre queprofile_view&nbsp;é chamado sem 'process_view', apenas o nome e a nota devem ser mostrados. Se oprofile_view&nbsp;é iniciado peloprocess_view&nbsp;o contexto com presença e marcas deve ser renderizado.

Isso funciona até oprocess_view&nbsp;redirecionar, mas não tenho idéia de onde devo redirecionar (ou mesmo redirecionar?preso) e chamando oprofile_view.

Então, o resumo da pergunta,

Como redirecionar deprocess_view&nbsp;paraprofile_view&nbsp;sem perder dados coletados emprocess_view&nbsp;aoprofile_view&nbsp;e renderize o conteúdo com o URL deprofile_view? Eu não quero otoken&nbsp;estudent_id&nbsp;para ser mostrado no URL.

Obrigado por todas as sugestões / ajuda.