Сделать вычисления для записей внутри пагинации, django
Я хочу вычислить сумму двух записей, но только внутри пагинации.
class MacaListView(ListView):
model = Maca
paginate_by = 20
def get_context_data(self, *, object_list=None, **kwargs):
context = super(MacaListView, self).get_context_data(object_list=None, **kwargs)
maca = Maca.objects.all()
for i in range(0, maca.count()):
maca1 = Maca.objects.get(maca[i].id)
maca1.number = maca.number + 1
maca1.save()
Это перейдет к каждой отдельной записи и выполнит логику. Я хочу, чтобы логика выполнялась только для записей в пагинации (вычислять только для 20 записей)
Не могли бы вы попробовать? Здесь мы получаем номер текущей страницы и нарезаем queryset, чтобы получить только нужные элементы.
class MacaListView(ListView):
model = Maca
paginate_by = 20
def get_context_data(self, *, object_list=None, **kwargs):
context = super(MacaListView, self).get_context_data(object_list=None, **kwargs)
page = int(self.request.GET.get('page', 1))
maca = Maca.objects.all()[(page-1)*self.paginate_by:self.paginate_by]
for i in range(0, maca.count()):
maca = Maca.objects.get(maca[i].id)
maca.number = maca.number + 1
maca.save()