Помогите с передачей переменных w / csrfContext - PullRequest
0 голосов
/ 20 июля 2011

У меня есть страница входа в систему, и, по моему мнению, я передаю ей переменную csrfContext для тега csrf_token. Однако возникают проблемы, когда я пытаюсь передать в контекст не только эту переменную. Например, если я использую locals ()

return render_to_response('base_index.html', locals())

Я получаю ошибку csrf. По какой-то причине это работает, только если я явно передаю csrfContext и только csrfContext. Однако мне также нужно передать другие переменные. Как я могу передать csrfContext и эти переменные вместе? Извините, если это запутанный вопрос. Мой код просмотра:

def index(request):
    current = Module.objects.all()
    error = ""
    try:
        error = request.GET["alert"]
        if error == "failure":
            error = "Woops! Something went wrong. Please try again."
        elif error == "invalid":
            error = "Invalid username/password."
        else:
            error = "Unknown Error. Please try again."
    except:
        pass
    csrfContext = RequestContext(request, error, current)
    return render_to_response('base_index.html', csrfContext)

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

Ответы [ 2 ]

0 голосов
/ 28 июля 2011

Я использовал return render_to_response('base_index.html', locals(), csrfContext), и это сработало

0 голосов
/ 20 июля 2011

Я бы не рекомендовал использовать localals () таким образом.В более сложных представлениях вы можете в конечном итоге передать гораздо больше необходимого рендеринга шаблона.

Лучший способ сделать это - создать RequestContext и либо передать значения, которые вы хотите добавить, либо добавитьих после: https://docs.djangoproject.com/en/dev/ref/templates/api/#django.template.Context

...