SoftDeleteModelAdmin
python | by: dArignac
posted: Aug, 2nd 2010 | jump to bottom
## The ModelAdmin class for classes with SoftDelete behaviour class SoftDeleteModelAdmin(admin.ModelAdmin): def queryset(self, request): if request.user.is_superuser: qs = self.model._default_manager.all_with_deleted() else: qs = self.model._default_manager.all() ordering = self.ordering or () if ordering: qs = qs.order_by(*ordering) return qs ## If a specific record was requested, return it even if it's deleted def get(self, *args, **kwargs): return self.all_with_deleted().get(*args, **kwargs) ## If pk was specified as a kwarg, return even if it's deleted def filter(self, *args, **kwargs): if 'pk' in kwargs: return self.all_with_deleted().filter(*args, **kwargs) return self.get_query_set().filter(*args, **kwargs)
57 views




