Вот моя модель Джанго:
class MyModel(models.Model):
a = IntegerField()
b = DateTimeField()
Вот QuerySet, который я выполняю для этой модели, чтобы найти количество, минимум, максимум и среднее значение b
для каждого значения a
:
>>> MyModel.objects.values('a').annotate(count=Count("b"), min=Min('b'), max=Max('b'), avg=Avg('b'))
{'a': 1, 'count': 2,
'avg': 20150226046183.0,
'min': datetime.datetime(2015, 2, 26, 1, 8, 22, tzinfo=<UTC>),
'max': datetime.datetime(2015, 2, 26, 8, 15, 44, tzinfo=<UTC>)}
Посмотрите на значение, связанное с ключом avg
. Это поплавок. Почему? Среднее значение DateTimeField должно быть DateTimeField, верно? Так почему же это поплавок? Я даже мог понять строку, но точно не число с плавающей запятой. Это не десятичные числовые данные.
Как только мы решим эту проблему, я смогу разобрать данные из поплавка, чтобы понять, что означает Django. Я вижу, что 20150225
, очевидно, означает 26 февраля 2015 года. Но подождите, это означает, что время суток будет представлено 046183.0
. Что, черт возьми, это вообще значит? 4:61 и 83 секунды?? Это не имеет никакого смысла.
Может кто-нибудь, пожалуйста, объясните мне все это? Это кажется немного беспорядком.