'Where to find a single understandable instructions for the method of ModelAdmin in Django

A question from a silly noob about Django

I read a tutorial that described the ModelAdmin method changelist_view

It looks next:

class SaleSummaryAdmin(ModelAdmin):

    # ...

    def changelist_view(self, request, extra_context=None):
        response = super().changelist_view(
            request,
            extra_context=extra_context,
        )

        try:
            qs = response.context_data['cl'].queryset
        except (AttributeError, KeyError):
            return response

        metrics = {
            'total': Count('id'),
            'total_sales': Sum('price'),
        }

        response.context_data['summary'] = list(
            qs
            .values('sale__category__name')
            .annotate(**metrics)
            .order_by('-total_sales')
        )

        return response

This is different from what is in the documentation. Additionally, in other tutorials I have seen other versions of writing this method, like this:

def changelist_view(self, request, extra_context=None):
        extra_context = extra_context or {}

        gradeScalesSettings = gradeScalesSetting.objects.all()
        configurations = configuration.objects.all()
        rounding = gradeScalesSetting.objects.all().values_list('Rounding', flat=True).distinct()

        extra_context.update({
            "rounding": rounding,
            "gradeScalesSetting": gradeScalesSettings,
            "configurations": configurations,
        })
        return super().changelist_view(request, extra_context=extra_context)

How does it work? I don't understand how correctly to use this method, because I can't find a single instruction. I probably just don't understand the principle by which it works. Tell me in which direction I should look



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source