编程语言
首页 > 编程语言> > python – 在一个TastyPie API请求中POST多个对象

python – 在一个TastyPie API请求中POST多个对象

作者:互联网

如果可能的话,我想在一个帖子请求中创建多个相关对象.我有一个有多个游戏的应用程序,我想在数据库中发布每个游戏的应用程序活动.

模型中的每个活动对象都有一个游戏对象作为外键,因此我需要在创建活动对象之前创建游戏.

{
     "game": {
         "name":"monte",
         "app":"/api/v1/app/1/"
      },

     "activity":{
         "type":"eggs",
         "score":"0.90",
         "game":"_INSERT_MONTE_RESOURCE_URI_HERE_"
      },

     "activity":{
         "type":"spam",
         "score":"1.00",
         "game":"_INSERT_MONTE_RESOURCE_URI_HERE_"
      }
}

有一种简单的方法可以做到这一点,还是我需要从我的应用程序发出3个帖子请求?一个是创建游戏,然后是每个活动一个?

我想也许PATCH可以工作,但后来我意识到当我发送补丁请求时,我不知道要分配给每个活动的游戏资源URI.我想我可以在一个请求中创建游戏,然后在补丁请求中创建活动,我只是希望可以在一个批处理中完成所有操作.

解决方法:

如果游戏资源如下:

class GameResource(ModelResource):
    activities = fields.ToManyField(ActivityResource, 'activities', full=True)

按照tastypie文档中的说明:

Tastypie encourages “round-trippable” data, which means the data you can GET should be able to be POST/PUT’d back to recreate the same object.
If you’re ever in question about what you should send, do a GET on another object & see what Tastypie thinks it should look like.

您将能够在一个批次中创建所有.

标签:restful-url,python,django,tastypie
来源: https://codeday.me/bug/20190901/1781630.html