2011-07-18 3 views
0

私はdjango-paypalを統合しようとしています。成功または失敗したシグナルを処理する必要があります。djangoシグナルを処理した後にテンプレートを表示する/テンプレートにリダイレクトする方法は?

私はすべてのコードを完了しましたが、ユーザーに支払いが成功したか失敗したかを示すテンプレートを表示する必要があります。

もし私がreturn HttpResponseRedirect...になれば、私はコンテキストにアクセスすることができないのでrender_to_responseできません(そして私はsekazaiなどを使用しています)。

どうすればいいですか?

## Called when django-paypal fails to validate PDT data 
def pdt_failed_transaction(sender, **kwargs): 
    return HttpResponseRedirect(reverse('payment-error')) 

答えて

2

短い回答:できません。これは信号が設計されたものではありません。検証コードをフォームに入力し、ビューで応答を処理する必要があります。それがプロセスです。

+0

これはかなり面倒ですが、ありがとう、私は私のアプローチを変更します。 – Tim

0

この検索で​​は、Googleの検索で回答がかなり役に立たない/役に立たないとわかりました。私はこれが妥当な好奇心だと思っています。Chris Prattは正しいですが、要求や応答をシグナルで変更することはできませんが、ちょうどログインしたユーザーに基づいていくつかのコードを実行したいと思っています。

いくつかのコード誰かがリダイレクトが含まれているという点で、ログインするときにのみ、あなたはsettings.pyにあなたのsettings.pyに​​

を設定仲介ビューとLOGIN_REDIRECT_URLを使用することができます。アプリ/ views.pyで

LOGIN_REDIRECT_URL = reverse_lazy('app.views.after_login') 

@login_required 
def after_login(request): 
    if conditions met: 
     return HttpResponseRedirect(reverse('home_alt')) 
    else: 
     return HttpResponseRedirect(reverse('home')) 
関連する問題