伪造Django的请求

时间:2012-10-11 12:06:16

标签: django view

我有一个装有Tastypie的Django,在REST风格下将不同类型的对象组合在一起并不容易,所以我想是否可以提供一个特殊的视图来将几个REST URL的响应组合成一个更大的JSON对象并返回客户端。网址可能看起来像,

  

http:// domain.com / combined_view /?p = {rest url 1 ...}& p = {rest url   2 ...}& p = {rest url 3 ...}

并返回JSON,

  

[{rest url 1 ...}的反应,     {rest url 2的响应...},     {rest url 3的响应...},     ...   ]

问题是,在正常的django视图中,如何伪造请求对象并将其处理为响应对象? THX。

2 个答案:

答案 0 :(得分:0)

从视图中调用自己的RESTful API是浪费资源。使用数据库ORM直接访问对象。

也不应将不相关的资源/对象组合在一起。如果您认为模型应该组合在一起,那么您的模型可能需要处理它并且具有将两者结合的关系。

要直接回答您的问题,您可以使用httplib2来调用您的网址并解析回复。

答案 1 :(得分:0)

我敦促你重新考虑你做的事情,因为无论我们在这里给你什么答案,都必然会直接反对REST接口的资源设计。

如果您拥有FooBarBaz模型,并且为它们创建了相同的资源,则无法生成将返回{{1}的混合集合的请求},FooBar资源,除非这些是联合关系中的嵌套资源。

你要么没有足智多谋的想法,要么不需要,但绝对不要将RESTful架构变成他们没有设计的东西。