0

ユーザーを他のページにリダイレクトしたいときに、ビューで ajax を使用してリクエストを機能させる方法を知りたいです。たとえば、ユーザーがメールを正常に送信し、他のページにリダイレクトしたい場合などです。このリクエストを ajax で機能させるにはどうすればよいですか?

私はviews.pyにこの関数を持っています:

def compose(request, recipient=None, success_url=None, recipient_filter=None):
    if request.is_ajax():         
        if request.method == "POST":
            sender = request.user
            form = compose_form(request.POST, recipient_filter=recipient_filter)
            if form.is_valid():
               // do some processing
               if success_url is None:
                   success_url = reverse('messages_inbox')
               if request.GET.has_key('next'):
                   success_url = request.GET['next']
               return HttpResponseRedirect(success_url)
    else: //rest of function

そして、「messages_inbox」など、ajax で渡されるリクエストをチェックインします。それで、方法は何ですか?

4

1 に答える 1

1

ビューは、ajax リクエストの場合にリダイレクトする必要があるものではありません。代わりに、ビューsuccess_urlを ajax 呼び出しに戻してから、成功のコールバックを使用してユーザーをリダイレクトします。

jquery を使用した例

$.ajax(url, data, function (data, response, xhr){
    ...
    var url = success_url; //Get success url from your data which is a json response object   
    $(location).attr('href',url);
});

jquery を使用せずにリダイレクトを行うこともできます。JavaScript /jQuery で別の Web ページにリダイレクトする方法を参照してください。

于 2012-10-26T09:37:34.230 に答える