1

以下に私のコードがあります。いくつかの検証エラーの後にリダイレクトする方法がわかりませんUrls.py:

    (r'^comments/', include('django.contrib.comments.urls')),

views.py:

def show_episode(request, episode) :
episode = get_object_or_404(Episode, pk=episode)

return render_to_response('episode.html', context_instance=RequestContext(request, {
    'episode' : episode,
    }))

Episode.html:

        <div class="subsection">
        {% get_comment_form for episode as form %}
        <table>
            <form action="{% comment_form_target %}" method="post">
                {% csrf_token %}
                {{ form }}
                <tr>
                    <td colspan="2" style="text-align: center">
                        <input type="submit" name="submit" value="Post">
                        <input type="submit" name="preview" value="Preview">
                    </td>
                </tr>
                <input type="hidden" name="next" value="{% url episode episode.id %}" />
            </form>
        </table>
    </div>
    <div class="subsection">{% render_comment_list for episode %}</div>

エラーが発生したときに、このフォームに戻りたいと思います。


試しましたが、エラーが発生しました:'QueryDict'オブジェクトに属性'_meta'がありませんコード:

def comments(request) :
if request.method == 'POST' :
    form = CommentForm(request.POST)
    if (form.is_valid()) :
        form.save()
    return HttpResponseRedirect(request.POST['next'])
return HttpResponseRedirect('/')
4

1 に答える 1

0

逆の方法で行います。同じビューでフォームを処理します(つまり<form action=""、このように設定すると、ユーザーはリダイレクトの場合のように入力を失うことはありません)。

ただし、このビューを介して他のビューを呼び出すことはできます。(if request.method == 'POST'

エラーが発生しなかった場合は、response.redirectを成功ビューに送信します。

于 2012-04-18T20:45:36.247 に答える