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 に答える