Python 有人能解释一下如何将arg或kwargs从重定向传递到另一个视图吗?
我试图让我正在开发的网站的经理向会员发送邮件,并发送一个确认页面 “发送邮件”正在运行,发送邮件正常,但在确认中,我希望他获得他发送邮件的联系人列表 因此,我需要在directs中将users_列表从一个函数(视图)发送到另一个函数(视图),并在另一个视图中读取它,然后将其发送到render_to_响应 我在网上读了很多书,尝试了反向阅读和其他很多东西,但似乎都没能成功 守则:Python 有人能解释一下如何将arg或kwargs从重定向传递到另一个视图吗?,python,django,django-views,django-urls,Python,Django,Django Views,Django Urls,我试图让我正在开发的网站的经理向会员发送邮件,并发送一个确认页面 “发送邮件”正在运行,发送邮件正常,但在确认中,我希望他获得他发送邮件的联系人列表 因此,我需要在directs中将users_列表从一个函数(视图)发送到另一个函数(视图),并在另一个视图中读取它,然后将其发送到render_to_响应 我在网上读了很多书,尝试了反向阅读和其他很多东西,但似乎都没能成功 守则: def send_members_mail(request): #a list of all active u
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'],
'support@test.com',
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))
第一个视图用于获取用户列表,并将其发送到表单,然后从表单中获取数据,包括选中的复选框,然后获取用户的邮件地址(用户通过邮件登录,因此必须有工作邮件),然后将邮件发送给用户并重定向到发送页面(确认页面)管理员应该从中获取用户列表(这就是我被卡住的地方,在URLSCONF文件中做这个和那个)
谢谢,
Erez您可以将用户列表设置为变量,而不是尝试反向/重定向传递它
# before redirect
request.session['users_list'] = users_list
# in sent view
users_list = request.session.get('users_list', None)
愚蠢的我,非常感谢詹姆斯,会接受答案的时候系统会让我:-)