gpt4 book ai didi

python - Django-PayPal 将信号连接到 Action

转载 作者:太空宇宙 更新时间:2023-11-03 16:02:19 24 4
gpt4 key购买 nike

我应该如何将信号连接到操作以处理 Django-Paypal 中的不同类型的交易?

文档链接: https://github.com/spookylukey/django-paypal

Django-PayPalREADME.rst 的第 5 项中,它说:

5。每当处理 IPN 时,都会发送一个信号和交易结果。将信号连接到操作以在收到成功的付​​款后执行所需的操作。

然后它列出了不同类型的交易:

基本交易有四个信号:

payment_was_successful
payment_was_flagged
payment_was_refunded
payment_was_reversed

所以我的问题是,如何将信号与 Django-PayPal 模块中的自定义 Signals 映射,以及这些 Signals 住?在 models.py 或单独的文件中?

如果您知道答案,可以给我一个可行的例子吗?

最佳答案

您需要将信号放入由 Django 自动导入的文件中。

将它们放在 models.py 中很常见,因为这符合要求,但我认为将它们放在一个或多个单独的文件中更清晰,例如:

myapp/
__init__.py
models.py
signals.py

然后在 myapp/__init__.py 中你可以:

from myapp.signals import *

只要 myapp 在您的 INSTALLED_APPS 中,您的信号就会被 Django 导入和连接。

signals.py 中,您根据 the docs 定义接收器

from django.dispatch import receiver
from paypal.standard.ipn.signals import payment_was_successful

@receiver(payment_was_successful)
def show_me_the_money(sender, **kwargs):
ipn_obj = sender
# Undertake some action depending upon `ipn_obj`.
if ipn_obj.custom == "Upgrade all users!":
Users.objects.update(paid=True)

关于python - Django-PayPal 将信号连接到 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21027724/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com