Skip to content

admin

django_spire.file.admin

FileAdmin

Bases: ModelAdmin

list_display = ('id', 'name', 'type', 'formatted_size', 'content_object_link', 'file_link') class-attribute instance-attribute

list_filter = ('type',) class-attribute instance-attribute

ordering = ('-id',) class-attribute instance-attribute

search_fields = ('id', 'name', 'type') class-attribute instance-attribute

Source code in django_spire/file/admin.py
@admin.display(description='Content Object')
def content_object_link(self, file: models.File) -> str:
    return admin_change_link(file.content_object, empty_text='No Related Object')
Source code in django_spire/file/admin.py
@admin.display(description='File Download Link')
def file_link(self, file: models.File) -> str:
    if not file.file:
        return 'No File'

    return format_html('<a href="{}" download>{}</a>', file.file.url, file.name)

formatted_size

Source code in django_spire/file/admin.py
@admin.display(description='Size')
def formatted_size(self, file: models.File) -> str:
    return file.formatted_size

get_queryset

Source code in django_spire/file/admin.py
def get_queryset(self, request: HttpRequest) -> QuerySet[models.File]:
    queryset = super().get_queryset(request)

    return queryset.prefetch_related('content_object')