Метод get_object
должен возвращать экземпляр модели. Вы не можете вернуть ответ перенаправления оттуда.
Один из вариантов - вызвать пользовательское исключение и перехватить его в методе dispatch
.
from django.shortcuts import redirect
class WrongOwner(Exception):
pass
class ProspectDelete(LoginRequiredMixin, DeleteView):
...
def dispatch(self, request, *args, **kwargs):
try:
return super(ProspectDelete, self).dispatch(request, *args, **kwargs)
except WrongOwner:
return redirect('/risking/notyours/')
def get_object(self, queryset=None):
""" Hook to ensure object is owned by request.user. """
obj = super(ProspectDelete, self).get_object()
if not obj.owner == self.request.user:
raise WrongOwner
return obj