私は django-paypal の dcramer のフォークを使用しており、現在までセットアップに成功しています。「paypal.pro.signals.payment_was_successful」を作成したリスナーに接続しようとしましたが、シグナルが複数回送信され、アプリケーションでエラーが発生しています。「dispatch_uid」を接続ステートメントに追加しようとしましたが、それでも複数回送信されます...何が間違っていますか? この信号を使用する必要がありますか?
2 に答える
2
解決策は、ハンドルをシグナルに接続するときに、dispatch_uid キーワード arg を追加することです。例については、 http://code.djangoproject.com/wiki/Signals#TipsandTroubleshootingを参照してください。
コードは次のようになります。
payment_was_successful.connect(paypal_payment_processed, dispatch_uid="something-rational-here")
于 2010-11-11T14:09:36.867 に答える
1
現時点では非常に簡単です。アプリの init.py にシグナルを登録しました
init.pyで
from paypal.pro.signals import payment_was_successful
from listeners import paypal_payment_processed
payment_was_successful.connect(paypal_payment_processed)
listeners.py で
def paypal_payment_processed(sender, **kwargs):
print 'signal called'
次に、django-paypal ラッパーのビューには次のものが含まれます。
def apartment_store_lease_step_4_content(request, apartment_id, lease_obj):
item = {
"amt": total,
"custom": lease_obj.id ,
"cancelurl" : "OMITTED",
"returnurl" : "OMITTED"
}
ctx = {
"lease_purchase" : lease_obj,
"contract" : contract
}
ctx.update(locals())
kw = {
"item" : item,
"payment_template" : "OMITTED",
"confirm_template" : "OMITTED",
"success_url" : "OMITTED",
"context": ctx
}
ppp = PayPalPro(**kw)
return ppp(request)
于 2010-09-27T03:28:59.490 に答える