我有一个带有sequence_number
字段的Django模型,每次模型实例更新时都会递增:
class Foo(models.Model):
bar = models.TextField()
sequence_number = models.IntegerField(default=0)
我为此模型实现了Tastypie资源,如下所示:
class FooResource(ModelResource):
class Meta:
queryset = Foo.objects.all()
resource_name = 'foo'
list_allowed_methods = ['get']
detail_allowed_methods = ['put', 'get']
因此,客户端用户可以使用如下URL来请求Foo的特定实例:
http://.../api/foo/123/
客户端应用程序保留sequence_number
,以便他们知道他们持有的对象版本。
我想在详细信息资源上实现过滤器,以便客户端可以将他们持有的sequence_number
传递给服务器:
我尝试通过向资源元数据添加过滤器来实现此目的:
filter = {
'sequence_number': ('gt',),
}
使用以下网址:
http://.../api/foo/123/?sequence_number__gt=123
但它没有效果。当我使用列表资源时,它确实有效。
http://.../api/foo/?sequence_number__gt=123
那么 - 是否可以配置Tastypie接受详细资源的过滤器?如果没有,有关如何推出自己的解决方案的任何建议(同时仍然使用Tastypie)?