0

私はDjangoを初めて使用し、DeleteViewは次のように記述されています。

class ObjectDelete(DeleteView):
    def post(self, request, *args, **kwargs):
        blah blah
        return super(ObjectDelete, self).post(request, *args, **kwargs)

object.delete関数のどこにも見たことがないので、オブジェクトを削除する方法について混乱しています。

4

1 に答える 1

4

オブジェクトの実際の削除は、が使用DeletionMixinする親であるdjango.views.generic.edit.BaseDeleteViewによって行われDeleteViewます。

これがDeletionMixin

class DeletionMixin(object):
    """
    A mixin providing the ability to delete objects
    """
    success_url = None

    def delete(self, request, *args, **kwargs):
        """
        Calls the delete() method on the fetched object and then
        redirects to the success URL.
        """
        self.object = self.get_object()
        self.object.delete()
        return HttpResponseRedirect(self.get_success_url())

    # Add support for browsers which only accept GET and POST for now.
    def post(self, *args, **kwargs):
        return self.delete(*args, **kwargs)

    def get_success_url(self):
        if self.success_url:
            return self.success_url
        else:
            raise ImproperlyConfigured(
                "No URL to redirect to. Provide a success_url.")

を使用して、削除するオブジェクトをフェッチしますget_object()

于 2012-10-09T09:35:47.297 に答える