[Django]-How to show only one object in django admin list view?

2👍

Did you try to set list_per_page = 1?

class DefaultConfigAdmin(models.ModelAdmin):
    model = Config
    ordering = ('-created_at',)
    list_per_page = 1

Technically this will still return all Config objects, but only one per page and the latest one will be on the first page.


Another solution (similar to your "Attempt 2"), which involves an extra query, is to manually get hold of the latest created_at timestamp and then use it for filtering.

class DefaultConfigAdmin(models.ModelAdmin):
    model = Config

    def get_queryset(self, request):
         qs = super().get_queryset(request)
         latest_config = qs.order_by('created_at').last()
         return qs.filter(created_at=latest_config.created_at)

Leave a comment