例如: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的基于类的视图中使用了哪些方法?
答案 0 :(得分:1)
get_context_data
方法用于获取用于呈现模板的数据。它不应该真正创建用户或执行其他操作。
您可以覆盖dispatch()
,但更常见的方法是覆盖get()
或post()
,具体取决于您要处理的请求类型。 dispatch()
的基本实现会根据请求类型调用相应的方法(例如get()
或post()
)
如果您要验证POST变量,那么您应该考虑使用Django forms,并对FormView
进行子类化。
Classy Class-Based Views是探索方法或基于类的视图的好资源。
最后,您不必使用基于类的视图,如果您更喜欢以这种方式构建代码,那么使用基于函数的视图没有任何问题。