2014-01-09 2 views
1

Django-Paypal에서 다양한 거래 유형을 처리하기 위해 액션에 신호를 연결하려면 어떻게해야합니까? IPN이 신호를 처리 할 때마다Django-PayPal 액션에 신호 연결

5. 트랜잭션 (transaction)의 결과와 함께 전송 될 것이다

문서 링크 님https://github.com/spookylukey/django-paypal

README.rst 아이템 번호 5 Django-PayPal 용은 말한다 . 성공적인 지불을받을 때 필요한 작업을 수행하기 위해 신호를 작업에 연결하십시오.

그리고이 거래의 다른 유형이 나열

기본 거래를위한 신호가있다는 :

payment_was_successful 
payment_was_flagged 
payment_was_refunded 
payment_was_reversed 

그래서 제 질문은, 어떻게 신호와지도 않는있다 Django-PayPal 모듈의 맞춤 SignalsSignals은 어디에 있습니까? models.py 또는 별도의 파일에 있습니까?

답을 알고 있다면 나에게 실례를 줄 수 있습니까?

답변

0

장고가 자동으로 가져 오는 파일에 신호를 넣어야합니다.

내가 예를 들어, 별도의 파일 또는 파일에 넣어하는 청소기라고 생각하지만 그것은, 그 법안을 맞는으로 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)