for i, region in enumerate(set(pharmacy_qset.values_list('region', flat=True))):
pharmacy_list = list(pharmacy_qset.filter(region=region).values_list('recipient', flat=True))
table = getattr(storage, f'QvProdajiPoSeriyam{region}')
sales_region = table.objects.filter(
address__in=pharmacy_list,
data_otgruzki__gte=
datetime.now() - timedelta(days=serializer.validated_data['days']),
data_otgruzki__isnull=False,
).values(
'data_otgruzki',
'nomer_dokumenta',
'vid_dokumenta',
'kod_serii',
'kontragent__polnoe_naimenovanie',
'kontragent__inn',
'address__adres_dostavki',
'address__kod_gruzopoluchatelya',
'kod_nomenklatury',
'kolichestvo',
't_o'
)
if i == 0:
sales = sales_region
else:
sales = sales.union(sales_region)
sales = sales.order_by('-data_otgruzki', 'nomer_dokumenta', 'vid_dokumenta')
count = sales.count()
if page:
cut_from = page * serializer.validated_data['limit'] - serializer.validated_data['limit']
cut_to = page * serializer.validated_data['limit']
sales = sales[cut_from:cut_to]
result = []
for sale in sales:
result.append({