如何删除tastypie模型资源索引

时间:2013-05-15 11:21:24

标签: python django api tastypie

我正在使用django-tastypie实现rest api。我的api资源定义如下:

class AddressResource(ModelResource):

    class Meta:
        resource_name = 'address'
        queryset = Address.objects.all()
        always_return_data = True
        authorization = Authorization()
        serializer = Serializer(formats=['json'])

        validation = Validation()

我的模型地址定义为:

class Address(models.Model):
    number = models.IntegerField()
    street = models.CharField(max_length=100)
    city = models.CharField(max_length=100)
    country = models.CharField(max_length=25)
    postalCode = models.CharField(max_length=5)

我可以创建发布到网址http://mydomain.com/api/v1/Address/的地址资源。在地址资源创建之后,资源uri是/ api / v1 / Address / 1 /..../ api / v1 / Address / 2 / .... etc

如果我直接从模型数据库中删除资源或者通过执行资源http://mydomain.com/api/v1/Address/2/的HTTP DELETE删除资源,当我执行资源的新帖子时,资源uri的id仍然基于最后一个递增指数。

示例:我有30个地址资源,我删除了所有这些资源,当我新建一个新资源时,资源uri是/ api / v1 / Address / 31 /而不是1.

如何在删除资源时删除索引?

提前致谢 维克多

1 个答案:

答案 0 :(得分:0)

如果您使用自动增量字段,这是django的默认主要关键字段,则无法实现。要执行您想要的操作,您需要使用primary_key = True属性为primare键指定自己的字段。在创建新模型实例时,您需要手动将其设置为您想要的内容。