0

私はdjango-paypalのドキュメントを読んでいて、サンドボックスシミュレーターからIPNを送信すると信号が接続されました。

できます:

UserProfile.objects.update(has_paid=True)

私もできる:

UserProfile.objects.update(middle_name=sender.custom) # sender.custom set to "Lyndon" on IPN

誰もが 1 年間無料で利用できます。私がしたいことではない...私がしたいことは

up = UserProfile.objects.get(user=ipn_obj.custom)
up.has_paid = False
up.save()

しかし、そのような場合、即時支払い通知 (IPN) シミュレーターでサーバー エラー (500) メッセージが表示されます。

IPN delivery failed. HTTP error code 500: Internal Server Error

データベースにまだ Paypal IPN がありますが、フラグが立てられず、支払いステータスが「完了」で表示されます。ただし、信号は接続されていません。

私はここで何か(または複数のもの!)を得ていません。どんなポインタでも大歓迎です。

T

4

2 に答える 2

2

それを使ってみてください、

UserProfile.objects.filter(user=ipn_obj.custom).update(has_paid=False)

何が問題なのか理解できないその種のバグについては、ipdbを使用してください。

ipdbをインストールする必要があります。

$ pip install ipdb

実行するには、機能しないコードに移動して追加します。

import ipdb; ipdb.set_trace()

ローカル(つまりrunserverを使用)で実行し、そのコードピースを実行するように要求すると、上記の行の後にトレースが表示されます。

次に進むには「n」を使用し、ipdbで「c」を使用し続けることに注意してください。

于 2012-09-29T20:32:21.157 に答える
1

気がつけば助かったのに…

up = UserProfile.objects.get(user.username=ipn_obj.custom)

ユーザー。ユーザー名...

于 2012-09-21T21:28:31.637 に答える