0

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

提前致谢

4

2 回答 2

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 %}

还要记得正确启用消息

于 2012-08-28T22:20:54.290 回答
0
return render_to_response('my_template.html',
                      my_data_dictionary,
                      context_instance=RequestContext(request))
于 2012-08-29T06:55:45.320 回答