django-paypal信号更新

时间:2012-09-17 22:01:37

标签: django django-paypal

我通过django-paypal文档选择了我的方式,当我从沙盒模拟器发送IPN时,我已经收到信号连接。

我能做到:

UserProfile.objects.update(has_paid=True)

我也可以这样做:

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

每个人都免费获得一年。不是我想要的...... 我想做的是

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,它将显示未标记且支付状态为"已完成"。但是,信号没有连接。

我在这里没有得到任何东西(或多件事!)。任何指针都非常赞赏。

Ť

2 个答案:

答案 0 :(得分: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”。

答案 1 :(得分:1)

如果我注意的话会有所帮助......

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

用户。的用户名 ...