我正在使用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.
如何在删除资源时删除索引?
提前致谢 维克多
答案 0 :(得分:0)
如果您使用自动增量字段,这是django的默认主要关键字段,则无法实现。要执行您想要的操作,您需要使用primary_key = True属性为primare键指定自己的字段。在创建新模型实例时,您需要手动将其设置为您想要的内容。