Зафиксируйте переменную в следующей функции - PullRequest
0 голосов
/ 17 января 2011

Я просто хочу передать адрес электронной почты с def send_username на второй def username_is_send.Как мне это сделать?Как передать переменную следующему def?

@csrf_protect  
def send_username(request, template_name='auth/user/registration/send_username_form.html',
    email_template_name='auth/user/registration/send_username_email.html',
            send_username_form=SendUsernameForm, post_reset_redirect=None):  
    if post_reset_redirect is None:  
        post_reset_redirect = reverse('auth.user.registration.views.username_is_send')  
if request.method == "POST":  
    form = send_username_form(request.POST)  
        if form.is_valid():  
           opts = {}  
           opts['use_https'] = request.is_secure()  
           opts['email_template_name'] = email_template_name
           opts['request'] = request
           form.send_mail_now(**opts)  
           return HttpResponseRedirect(post_reset_redirect)  
else:  
    form = send_username_form()
return render_to_response(template_name, {  
     'form': form,},    
context_instance=RequestContext(request))


def username_is_send(request, template_name='tmp/username.html'):  
    return render_to_response(template_name, context_instance=RequestContext(request))

Спасибо!

Craphunter

1 Ответ

2 голосов
/ 17 января 2011

Вам нужно как-то сохранить состояние, чтобы передать параметры через редирект. Несколько возможностей:

  1. Сохраните почтовый адрес в сеансе, затем снова прочитайте переменную сеанса в представлении username_is_send.
  2. Используйте параметр GET для передачи почтового адреса.

И это «проход», а не «путь». И "def" называется (просмотр) функцией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...