Django:render_to_response到另一个视图

时间:2012-08-28 22:14:27

标签: django url redirect view render-to-response

如何将“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。

提前致谢

2 个答案:

答案 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))