2014-01-09 2 views
1

Как подключить сигналы к действиям для обработки различных типов транзакций в Django-Paypal?Django-PayPal connect Сигналы к действиям

Docs Ссылка:https://github.com/spookylukey/django-paypal

В пункте № 5 README.rst для Django-PayPal он говорит:

5. Всякий раз, когда IPN обрабатывается сигнал будет послан в результате сделки , Подключите сигналы к действиям, чтобы выполнить необходимые операции, когда получен успешный платеж.

А потом он перечисляет различные типы операций:

Есть четыре сигналы для основных операций:

payment_was_successful 
payment_was_flagged 
payment_was_refunded 
payment_was_reversed 

Так что мой вопрос, как я могу сопоставить сигналы с изготовленный на заказ Signals в модуле Django-PayPal, и где должны эти Signals жить? В models.py или отдельный файл?

Если вы знаете ответ, можете ли вы дать мне рабочий пример?

ответ

0

Вам нужно поместить сигналы в файл, который автоматически импортируется Django.

Обычно, чтобы поместить их в models.py как приспосабливает счет, хотя я думаю, что это уборщик, чтобы поместить их в отдельный файл или файлы, например:

myapp/ 
    __init__.py 
    models.py 
    signals.py 

Тогда в myapp/__init__.py вы могли бы:

from myapp.signals import * 

пока myapp находится в вашем INSTALLED_APPS ваши сигналы будут импортированы и подключены Джанго.

В 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) 
Смежные вопросы