如何将“render_to_response参数”传递给新视图?
def show_list(request, id):
try:
profile = request.user.get_profile()
list = Lista.objects.get(user_profile = profile)
except Lista.DoesNotExist:
c = {}
c.update(csrf(request))
titlepage = "ooops, you don't have a list YET! click on button to create one!"
c = {'profile' : profile, 'request' : request, 'titlepage' : titlepage}
return render_to_response('/profiles/list/create/',c,context_instance=RequestContext(request))
使用此最后一行不起作用,url / profiles / list / create /重定向到视图create_list。
嗯,我知道我可以写一些像redirect(/ profiles / list / create /)这样的东西,但是这个我不能传递字典c。
提前致谢
答案 0 :(得分:3)
您应该使用django.contrib.messages
来显示您的消息并将用户重定向到另一个视图。
查看代码:
from django.contrib import messages
from django.shortcuts import redirect
def show_list(request, id):
try:
# normal flow
except Lista.DoesNotExist:
messages.warning("ooops, you don't have a list YET! click on button to create one!")
return redirect("/profiles/list/create/")
创建模板中的某处:
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
还记得正确地enable messages。
答案 1 :(得分:0)
return render_to_response('my_template.html',
my_data_dictionary,
context_instance=RequestContext(request))