Как получить доступ и изменить переменные контекста шаблона Django - PullRequest
1 голос
/ 08 марта 2011

В моем urls.py я сопоставляю url account / login / с модулем входа со ссылкой на шаблон, который я хочу использовать:

url(r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'templates/login.html'})

Это работает нормально, но я хочу изменить значение свойства next, в котором указано, куда следует перенаправить пользователя после успешного входа в систему. Как я могу получить доступ к этим переменным и распечатать их значения, и что более важно, как я могу изменить их?

Спасибо!

1 Ответ

1 голос
/ 08 марта 2011

Направить URL на просмотр:

(r'^accounts/login/', 'myproj.login.views.mylogin')

Затем обработайте перенаправление в коде просмотра:

def mylogin(request, **kwargs):
    if request.user.is_authenticated():
        if 'next_url' in request.session:
            url = request.session['next_url']
            del request.session['next_url']  # Cleaning next_url val
            return HttpResponseRedirect('/%s' % url)
        else:
            return HttpResponseRedirect('/')
    return login(request, **kwargs)

@csrf_protect
def login(request, template_name='registration/login.html'):
    """Displays the login form and handles the login action."""
    retval = django.contrib.auth.views.login(request, template_name)
    clear_session_data(request.session)
    return retval
...