#models.py
class Orders(models.Model):
orderid = models.IntegerField(db_column='orderID', primary_key=True)
pickupdate = models.DateField(db_column='pickupDate', blank=True, null=True)
pickupstore = models.ForeignKey(Branch, models.DO_NOTHING, db_column='pickupStore', blank=True, null=True,related_name = 'pickupstore')
class Branch(models.Model):
branchid = models.IntegerField(db_column='branchID', primary_key=True) # Field name made lowercase.
city = models.CharField(max_length=45, blank=True, null=True)
Поле пикапа в модели Класса заказов относится к модели класса филиала.
Я хотел бы подсчитать количество пикапов для всех магазинов (филиалов) в любом месяце, в том числе, когда магазины (филиалы)) иметь 0 пикапов в этом конкретном месяце
Это мое решение для подсчета количества или пикапов во всех магазинах (филиалы в январе 2006 года, однако в него не входят магазины, в которых 0 заказов
branchs = Orders.objects.all().select_related('pickupstore').values('pickupstore__city').filter(pickupdate__year = 2006, pickupdate__month = 1).annotate(num=Count('pickupstore__city')).order_by('pickupstore__city')
branchs = branchs.values('pickupstore__city').filter(pickupdate__year = year, pickupdate__month = month)
branchs = branchs.annotate(num=Count('pickupstore__city')).order_by('pickupstore__city')