我应该在基于Django类的视图IPN中使用哪些方法?

时间:2014-07-13 21:04:43

标签: django paypal

例如:dispatch()get_template_name()get_context_data()

我正在尝试设置PayPal IPN,它具有出色的PHP文档,但是Django在网络上的可用性不高。我几乎让它工作了。我可以成功使用IPN模拟器。我只是想知道,我应该采用什么方法将操作置于其下?就像捕获POST变量的行为一样,将它们发回并从PayPal验证然后对订单采取行动?现在,我认为所有这些都在get_context_data下,这似乎使PayPal的IPN模拟器警报" IPN成功发送",但它似乎没有创建用户或做我在该方法中指定的其他操作。我在基于类的视图中有2个函数:dispatch()返回200 OK和get_context_data()处理其他所有内容。

基本上,您在IPN的基于类的视图中使用了哪些方法?

1 个答案:

答案 0 :(得分:1)

get_context_data方法用于获取用于呈现模板的数据。它不应该真正创建用户或执行其他操作。

您可以覆盖dispatch(),但更常见的方法是覆盖get()post(),具体取决于您要处理的请求类型。 dispatch()的基本实现会根据请求类型调用相应的方法(例如get()post()

如果您要验证POST变量,那么您应该考虑使用Django forms,并对FormView进行子类化。

Classy Class-Based Views是探索方法或基于类的视图的好资源。

最后,您不必使用基于类的视图,如果您更喜欢以这种方式构建代码,那么使用基于函数的视图没有任何问题。