models.py:
class Distr(models.Model):
name = models.CharField(max_length=20, verbose_name="Поставщик")
class Place(models.Model):
place = models.CharField(max_length=255, verbose_name="Местоположение")
class Dostav(models.Model):
distr = models.ForeignKey(Distr)
place = models.ForeignKey(Place)
min_sum = models.IntegerField(max_length=10, verbose_name="Минимальная сумма заказа")
class Item(models.Model):
name = models.CharField(max_length=50, verbose_name="Название")
class Zakaz(models.Model):
item = models.ForeignKey(Item, verbose_name="Товар")
distr = models.ForeignKey(Distr, editable=False)
total = models.IntegerField(max_length=20, editable=False)
class Order(models.Model):
item = models.ManyToManyField(Zakaz, blank=True, verbose_name="Товар")
class Profile(models.Model):
user = models.ForeignKey(User, unique=True)
place = models.ForeignKey(Place, blank=True, null=True)
views.py:
profile = Profile.objects.filter(user = request.user)
orders = Order.objects.filter(user = request.user, check = False)
p_place = profile.values('place')
dostavka = Dostav.objects.filter(place = p_place)
for order in orders:
item = order.item.values('distr').annotate(summ = Sum('total')).values('distr__name', 'summ', 'distr__id')
for it in item:
min_summ = dostavka.filter(distr = it['distr__id'])
нужно вывести:
Order1:
Distr1 общая сумма заказа по Distr1/минимальная сумма заказа относительно Place
Distr2 общая сумма заказа по Distr2/минимальная сумма заказа относительно Place
Distr3 общая сумма заказа по Distr3/минимальная сумма заказа относительно Place
Order2:
Distr1 общая сумма заказа по Distr1/минимальная сумма заказа относительно Place
Distr2 общая сумма заказа по Distr2/минимальная сумма заказа относительно Place
Distr3 общая сумма заказа по Distr3/минимальная сумма заказа относительно Place