Tastypie PUT:对资源中所有对象进行部分更新

时间:2013-07-19 07:11:03

标签: tastypie

我有这样的django模型,(顺便说一句:我正在使用Tastypie)

class Watchlist(models.Model):
  name = models.CharField(max_length=200)
  created = models.DateTimeField(auto_now_add=True)
  user = models.ForeignKey('users.User')
  stocks = models.ManyToManyField('Stock')
  equityboss = models.BooleanField(blank=True, default=False)
  last_watched =  models.DateTimeField(auto_now_add=True)
  order = models.IntegerField(max_length=10)

我想单独为监视列表模型中的所有对象更新订单字段。

我尝试发送PUT请求,它删除了我的所有记录。我没有得到任何错误。 这是我通过PUT请求发送的数据

{'objects': [{'resource_uri': '/api/eboss/watchlist/2/', 'id': u'2', 'order': 0}, {'resource_uri': '/api/eboss/watchlist/1/', 'id': u'1', 'order': 1}]}

请告诉我有什么问题?

1 个答案:

答案 0 :(得分:2)

查看HTTP PATCH(the RFC) - Tastypie(their docs)支持它,并允许您部分更新资源。

看起来你需要为每个资源制作单独的PATCH,但是,因为没有提到PATCH一个列表,就像你可以输入列表的新副本一样。