2011-10-10 68 views
0

常见的情况:Django的:处理后的交易逻辑

  1. 用户选择的项目添加到购物车

  2. 用户使得通过异地支付网关如PayPal或 WorldPay的支付

  3. 用户获取重定向到付款页面并付款

  4. 付款门户发送POS牛逼请求回调URL

  5. 用户被重定向到您的网页

第4步,通常下面的事情发生:

  1. 错误处理和防欺诈检查

  2. 更新订单/购物车型号和附加逻辑

我的问题是有关本步骤4:

在应用程序,如Django-Paypal,而不是做在回调URL视图函数的所有逻辑处理,信号被代替使用。这是否有很好的理由?为什么不只是在回调url视图函数上做所有的逻辑?

回答

1

使用信号从您自己的应用程序中分离django-paypal。付款成功或失败时,您可以进行各种疯狂的自定义工作,并仍然使用默认提供的视图。

Django 1.3中基于类的视图确实可以扩展视图,并提供解耦应用视图的替代方法。

在将逻辑放入视图之前,您应该具备的其他注意事项是时间;如果逻辑可能需要很长时间(如任何I/O),请问自己是否对手头的响应至关重要,并考虑将其放入任务队列中,以便您可以快速处理请求而不会阻塞。