Melihat sumber
dan dokumentasi
untuk yummypie, sepertinya Anda harus mengganti dua fungsi dari ModelResource
(yang MongoEngineResource
mewarisi
):
-
obj_delete
yang menghapus objek. -
delete-detail
yang dipanggil pada permintaan DELETE dan memanggilobj_delete
kemudian mengembalikan204 No Content
atau404 Not Found
Saya belum pernah bekerja dengan Deliciouspie jadi ini semua dari melihat dokumentasi, tapi setidaknya ini adalah titik awal. Anda harus melakukan sesuatu seperti ini pada kelas Anda:
class SimpleResource(resources.MongoEngineResource):
class Meta:
queryset = Simple.objects.all()
resource_name = 'simple'
allowed_methods = ('get', 'put', 'post', 'delete', 'patch')
always_return_data = True
def obj_delete(self, bundle, **kwargs):
try:
# get an instance of the bundle.obj that will be deleted
deleted_obj = self.obj_get(bundle=bundle, **kwargs)
except ObjectDoesNotExist:
raise NotFound("A model instance matching the provided arguments could not be found.")
# call the delete, deleting the obj from the database
super(MongoEngineResource, self).obj_delete(bundle, **kwargs)
return deleted_obj
def delete_detail(self, request, **kwargs):
bundle = Bundle(request=request)
try:
# call our obj_delete, storing the deleted_obj we returned
deleted_obj = self.obj_delete(bundle=bundle, **self.remove_api_resource_names(kwargs))
# build a new bundle with the deleted obj and return it in a response
deleted_bundle = self.build_bundle(obj=deleted_obj, request=request)
deleted_bundle = self.full_dehydrate(deleted_bundle)
deleted_bundle = self.alter_detail_data_to_serialize(request, deleted_bundle)
return self.create_response(request, deleted_bundle, response_class=http.HttpNoContent)
except NotFound:
return http.HttpNotFound()