From dab4fbd0a441131570ec1c3412ded2843602d631 Mon Sep 17 00:00:00 2001 From: phzhik Date: Fri, 24 May 2024 02:22:04 +0400 Subject: [PATCH] * Query optimization * Cleanup --- account/admin.py | 3 +++ account/models/bonus.py | 3 +-- store/admin.py | 5 +---- store/views.py | 3 +-- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/account/admin.py b/account/admin.py index f28ef32..d8a7112 100644 --- a/account/admin.py +++ b/account/admin.py @@ -15,6 +15,9 @@ class UserAdmin(admin.ModelAdmin): class BonusProgramTransactionAdmin(admin.ModelAdmin): list_display = ('id', 'type', 'user', 'date', 'amount', 'comment', 'order', 'was_cancelled') + def get_queryset(self, request): + return BonusProgramTransaction.objects.with_base_related() + def delete_queryset(self, request, queryset): for obj in queryset: obj.cancel() diff --git a/account/models/bonus.py b/account/models/bonus.py index 980209f..4b53e10 100644 --- a/account/models/bonus.py +++ b/account/models/bonus.py @@ -64,9 +64,8 @@ class BonusType: class BonusProgramTransactionQuerySet(models.QuerySet): - # TODO: optimize queries def with_base_related(self): - return self.select_related('order') + return self.select_related('order', 'user') def cancel(self): for t in self: diff --git a/store/admin.py b/store/admin.py index de187c7..9c4f236 100644 --- a/store/admin.py +++ b/store/admin.py @@ -44,8 +44,5 @@ class PromoCodeAdmin(admin.ModelAdmin): @admin.register(Gift) class GiftAdmin(admin.ModelAdmin): - list_display = ('name', 'min_price') - - - + list_display = ('name', 'min_price', 'available_count') diff --git a/store/views.py b/store/views.py index e0d77fe..4630eda 100644 --- a/store/views.py +++ b/store/views.py @@ -9,7 +9,6 @@ from rest_framework import generics, permissions, mixins, status, viewsets from rest_framework.decorators import action from rest_framework.exceptions import NotFound from rest_framework.filters import SearchFilter -from rest_framework.generics import get_object_or_404 from rest_framework.permissions import AllowAny, IsAuthenticated from rest_framework.response import Response @@ -99,7 +98,7 @@ class ChecklistAPI(viewsets.ModelViewSet): obj.cancel() def get_queryset(self): - return Checklist.objects.all().with_base_related() \ + return Checklist.objects.with_base_related() \ .annotate_bonus_used() \ .default_ordering()