2011-07-05 1 views
1

Я пытаюсь позволить менеджеру сайта, который я разрабатываю, отправлять почту членам и отправлять страницу подтверждения.Может ли кто-нибудь объяснить, как я могу передать arg или kwargs из перенаправления на другой вид?

Почтовая почта работает и отправляет письмо в порядке, но в подтверждении я хочу, чтобы он получил список людей, которых он отправил.

Итак, мне нужно отправить users_list из одной функции (просмотра) в другую в directs и прочитать ее в другом представлении, отправляя ее в render_to_response.

Я много читал и пытался обратное, и многие другие вещи, которые я прочитал через Интернет, но не могу заставить его работать ...

Код:

def send_members_mail(request): 
    #a list of all active users in the system to show for send mail 
    users_list = User.objects.filter(is_active = True) 
    if request.method == 'POST': 
     form = UsersForm(request.POST) 
     if form.is_valid(): 
      user_list = [] 
      cd = form.cleaned_data 
      #getting a list of user s that where chosen for send mail, -1 for all users 
      for user_id in request.POST.getlist('chk_users'): 
       user_list.append(user_id) 
      #sending the mail to all list 
      if '-1' in user_list: 
       users_list = User.objects.filter(pk__in=users_list).values_list('email', flat=True) 
      #sending mail to specific members 
      else: 
       users_list = User.objects.filter(pk__in=user_list).values_list('email', flat=True) 

      cd = form.cleaned_data 

      try: 
       send_mail(
        cd['subject'], 
        cd['message'], 
        '[email protected]', 
        users_list, 
       ) 
      except BadHeaderError: 
       return HttpResponse('The Mail header was corrupted, It might be because a server error or might be that you have a virus on your computer!!! please try sending again') 
      return redirect('/contacts/sent/', users_list=users_list) 

    else: 
     form = UsersForm() 
    return render_to_response('contacts/send_members_mail.html', {'form':form, 'users_list':users_list}, context_instance=RequestContext(request)) 

def sent(request, users_list, *args, **kwargs): 
    assert False, users_list 
    return render_to_response('contacts/sent.html', context_instance=RequestContext(request)) 

Первый view предназначен для получения списка пользователей и отправки его в форму, а затем получения данных из формы, включая флажки, где указано, а затем получение почтовых адресов пользователей для пользователей (пользователи, зарегистрированные по почте, поэтому должны иметь рабочая почта), а затем отправка почты пользователям и перенаправление на страницу отправки (страница подтверждения), где администратор должен получить список пользователей (ЭТО ГДЕ Я ЕСМЬ застревать, ЭТО И ЧТО ДЕЛАТЬ В URLSCONF ФАЙЛ)

спасибо,

Эрез

ответ

2

Вместо того, пытается передать его в обратном/перенаправлять можно установить users_list как session переменной , например

# before redirect 
request.session['users_list'] = users_list 

# in sent view 
users_list = request.session.get('users_list', None) 
+0

Глупо мне, спасибо, Джеймс, примет ответ, когда система позволит мне :-) – Erez

 Смежные вопросы

  • Нет связанных вопросов^_^