Хобрук: Ваш путь к мастерству в программировании

Django - изменить поле даты и времени на поле даты

скажем, у меня есть такая модель:

class Arrival(models.Model):
    client = models.ForeignKey(User, related_name='client')
    time = models.DateTimeField()

Теперь я хотел бы построить график с количеством уникальных посещений клиентов на каждую дату.

Мой текущий подход заключается в использовании:

Arrival.objects.values('client','time')

после этого преобразуйте все поле даты и времени в поле даты. Используйте библиотеку python, чтобы получить список уникальных дат, а затем выполните итерацию по клиентам, чтобы узнать, сколько клиентов посещают за дату.

У кого-нибудь есть более эффективный подход, пожалуйста?

20.01.2015

Ответы:


1

Репост моего ответа здесь:

Получить ежедневное количество объектов из Django

(Arrival.objects
    # get specific dates (not hours for example) and store in "created" 
    .extra({'created':"date(time)"})
    # get a values list of only "created" defined earlier
    .values('created')
    # annotate each day by Count of Arrival objects
    .annotate(created_count=Count('id')))
20.01.2015
  • Привет, большое спасибо за комментарий. Но я думаю, что эта штука не отфильтровывает дубликаты посещений. Какой метод вы бы порекомендовали для подсчета только тех идентификаторов, которые уникальны? 21.01.2015
  • как вы определяете уникальность. Вы хотите подсчитывать посещения в день, но один раз для каждого клиента? 21.01.2015
  • Новые материалы

    Понимание СТРУКТУРЫ ДАННЫХ И АЛГОРИТМА.
    Что такое структуры данных и алгоритмы? Термин «структура данных» используется для описания того, как данные хранятся, а алгоритм используется для описания того, как данные сжимаются. И данные, и..

    Как интегрировать модель машинного обучения на ios с помощью CoreMl
    С выпуском новых функций, таких как CoreML, которые упростили преобразование модели машинного обучения в модель coreML. Доступная модель машинного обучения, которую можно преобразовать в модель..

    Создание успешной организации по науке о данных
    "Рабочие часы" Создание успешной организации по науке о данных Как создать эффективную группу по анализу данных! Введение Это обзорная статья о том, как создать эффективную группу по..

    Технологии и проблемы будущей работы
    Изучение преимуществ и недостатков технологий в образовании В быстро меняющемся мире технологии являются решающим фактором в формировании будущего работы. Многие отрасли уже были..

    Игорь Минар из Google приедет на #ReactiveConf2017
    Мы рады сообщить еще одну замечательную новость: один из самых востребованных спикеров приезжает в Братиславу на ReactiveConf 2017 ! Возможно, нет двух других кланов разработчиков с более..

    Я собираюсь научить вас Python шаг за шагом
    Привет, уважаемый энтузиаст Python! 👋 Готовы погрузиться в мир Python? Сегодня я приготовил для вас кое-что интересное, что сделает ваше путешествие более приятным, чем шарик мороженого в..

    Альтернатива шаблону исходящих сообщений для архитектуры микросервисов
    Познакомьтесь с двухэтапным сообщением В этой статье предлагается альтернативный шаблон для папки Исходящие : двухэтапное сообщение. Он основан не на очереди сообщений, а на..