Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с графиком и сортировкой данных, нужно построить график по суммам в день 
V
    Опции темы
Atata
  Дата 23.8.2011, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 6.7.2011

Репутация: нет
Всего: нет



После прочтения статьи "Рисуем графики (диаграммы) в Django" (http://habrahabr.ru/blogs/django/126704/),
решил попробывать включить это в свой проект.

И столкнулся  проблемой:
Код

    year = 2011

    end_date = today
    start_date = end_date - relativedelta(months=1)

    queryset = Order.objects.all()
    
    qsstats_count = QuerySetStats(queryset, date_field='added_date', aggregate=Count('ip'))
    qsstats_sum = QuerySetStats(queryset, date_field='added_date', aggregate=Sum('price'))
    
    values = qsstats_count.time_series(start_date, end_date, interval='days')
    summary = qsstats_sum.time_series(start_date, end_date, interval='days')


первый график (количество заказов/день) строится правильно, всё как надо,
а второй график (сумма заказов/день) строится неверно, потому что за те дни, когда не было заказов, сумма получается "None".
как сделать чтобы пустые дни имели значение 0.00 ?
в summary у меня в таком виде данные получаются:
Код

[(datetime.datetime(2011, 7, 23, 11, 41, 3, 678000), None), (datetime.datetime(2011, 7, 24, 11, 41, 3, 678000), Decimal('1534.00'))

PM MAIL   Вверх
Wuffur
Дата 23.8.2011, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 22.7.2007

Репутация: нет
Всего: нет



Atata
Может 
Код

qsstats_sum = QuerySetStats(queryset, date_field='added_date', aggregate=int(Sum('price'))
 ?

Это сообщение отредактировал(а) Wuffur - 23.8.2011, 18:03
PM MAIL ICQ   Вверх
Atata
Дата 23.8.2011, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 6.7.2011

Репутация: нет
Всего: нет



Код

Django Version:    1.3
Exception Type:    TypeError
Exception Value:    

int() argument must be a string or a number, not 'Sum'

PM MAIL   Вверх
Wuffur
Дата 23.8.2011, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 22.7.2007

Репутация: нет
Всего: нет



Вот как делают smile
https://bitbucket.org/MasonM/django-elect/s...elect/models.py
Код

 from django.db import connection
            cursor = connection.cursor()
            query = """
                SELECT c.id, IF(v.point IS NULL, 0, SUM(v.point)) AS points
                FROM %(ballot)s b
                JOIN %(candidate)s c ON (c.ballot_id=b.id)
                LEFT JOIN %(vote_preferential)s v ON (v.candidate_id=c.id)
                WHERE b.id = '%(id)i'
                GROUP BY c.id
                ORDER BY points DESC
            """


Это сообщение отредактировал(а) Wuffur - 23.8.2011, 19:53
PM MAIL ICQ   Вверх
Atata
Дата 23.8.2011, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 6.7.2011

Репутация: нет
Всего: нет



выглядит как кастыль)

я думаю может проще по списку summary пройтись и заменить все None на 0.00 ?
в питоне совсем новичек, не получилось у меня через for это сделать. подскажете?
PM MAIL   Вверх
Wuffur
Дата 23.8.2011, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 22.7.2007

Репутация: нет
Всего: нет



Держи
Код

Summary_without_None=[]
for i in Summary:
       if(i[1]==None):
               i=(i[0],Decimal(0))     
       Summary_without_None.append(i)


Это сообщение отредактировал(а) Wuffur - 23.8.2011, 21:02
PM MAIL ICQ   Вверх
Atata
Дата 23.8.2011, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 6.7.2011

Репутация: нет
Всего: нет



то что надо, спасибо  smile 
PM MAIL   Вверх
gomer999999999
Дата 3.2.2013, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 3.2.2013

Репутация: -1
Всего: -1



Добрый день.
Предлагаем к рассмотрению и тестированию наш проект - Маркетер Плагин.
Продвигаем его успешно во всем мире. Но только 27 января 2013 предоставили в Рунете к тестированию русифицированный плагин с русифицированным интерфейсом. Вся подробная информация наhttp://www.marketerplugin.ru/ 
Предлагаем протестировать наш плагин на только что русифицированном интерфейсеhttp://www.marketerplugin.ru/test_plagina.
В двух словах: плагин предназначен для создания сайтов-визиток и страниц продаж.
Ждем ваших комментариев, отзывов и критики.
Так же будем рады видеть вас на наших страницах в соц сетях
http://www.facebook.com/pages/Marketer-plugin/5288148..
http://vk.com/club46912629
Успехов и новых впечатлений.
С уважением, Богдан
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Веб-разработка и фреймворки | Следующая тема »


 




[ Время генерации скрипта: 0.0432 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.