0

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()

次のように定義されたモデル Address があります。

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)

URL http://mydomain.com/api/v1/Address/に投稿する Address リソースを作成できます。アドレス リソースの作成後、リソース uri は /api/v1/Address/1/..../api/v1/Address/2/....etc になります。

リソースをモデルデータベースから直接削除するか、リソースhttp://mydomain.com/api/v1/Address/2/の HTTP DELETE を実行してリソースを削除すると、リソースの新しい投稿を行うときにリソースの ID uri は、最後のインデックスに基づいてまだ増加しています。

例: 30 個のアドレス リソースがあり、それらすべてを削除します。新しいリソースの新しい投稿を行うと、リソース uri は 1 ではなく /api/v1/Address/31/ になります。

リソースが削除されたときにインデックスを削除するにはどうすればよいですか?

事前にありがとうビクター

4

1 に答える 1

0

django のデフォルトの主キー フィールドである autoincrement フィールドを使用している場合、これは不可能です。必要なことを行うには、primary_key=True 属性を使用して主キーの独自のフィールドを指定する必要があります。また、新しいモデル インスタンスを作成するときに、必要に応じて手動で設定する必要があります。

于 2013-05-15T11:43:21.693 に答える