Custom Storage Backend (Local/Cloud)

A snippet showing how to implement a custom storage backend.


# models.py
from django.db import models
class Doc(models.Model):
    file = models.FileField(upload_to="docs/")
  

# admin.py
from django.contrib import admin
from .models import Doc
@admin.register(Doc)
class DocAdmin(admin.ModelAdmin):
    list_display = ("file",)
  

# storages.py
from django.core.files.storage import Storage
class UppercaseNameStorage(Storage):
    def _save(self, name, content): return super()._save(name.upper(), content)
    def exists(self, name): return False  # example only

# settings.py
DEFAULT_FILE_STORAGE = "app.storages.UppercaseNameStorage"
  
Explanation:
  • Subclass Storage and override key methods like _save, url, exists.
  • Point DEFAULT_FILE_STORAGE to your custom storage path.
Never miss a story on Django.wiki

Subscribe for fresh tutorials, snippets, and updates.

By subscribing you agree to our Privacy Policy.