Задать вопрос

Выборка данных из базы. QuerySet?

Здравствуйте!
Суть вопроса в следующем. Пробую написать простое приложение по сбору числа рабочих на объектах. Есть модели
models
class SObjects(models.Model):
  title = models.CharField(max_lenght=128)

class Subpodr(models.Model):
  sobj = models.ForeignKey(SObjects)
  name = models.CharField(max_lenght=128)

class Peoples(models.Model):
  sobj = models.ForeignKey(SObjects)
  subpodr = ForeignKey(Subpodr)
  date = models.DateField(default=datetime.datetime.today())
  rab = models.IntegerField(default = 0)


Соответственно SObjects - модель с описанием объектов, на которых работают люди.
Subpodr - субподрядные организации (На одном объекте может быть несколько организаций)
Peoples - модель, собирающая численность рабочих.
На веб странице хочу выводить следующим образом.
На главной в виде таблицы с датами и суммой рабочих по объекту на каждый день.
При нажатии на объект список с подрядчиками и численность по датам.

Вопрос как из базы вернуть словарь с (данные будут выбираться всегда за месяц)
{Дата : {Объект 1: {Подрядчик 1: Кол-во Рабочих, Подрядчик 2: Кол-во рабочих}}, Дата 2 ....}

Или в любом другом удобном виде.
Смотреть думаю надо в сторону либо annotate, aggregate или в чистый sql (extra)

Написал функцию которая считает сумму людей по 1 объекту за определённый день
def calc(sobj, date):
  return Peoples.objects.filter(date=date, sobj=sobj).aggregate(Sum('rab'))
  • Вопрос задан
  • 1316 просмотров
Подписаться 2 Оценить 3 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Django: создание backend-приложений
    7 недель
    Далее
  • Stepik
    Django c ИИ ментором. С нуля до middle+. Программа курсов
    4 месяца
    Далее
  • ProductStar × РБК
    Python и Django: бэкенд-разработка
    3 месяца
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы