Значение имеет неверный формат и должно иметь вид ГГГГ-ММ-ДД ЧЧ: ММ
Я работаю с django 1.6 и получаю сообщение об ошибке в последней строке моего кода:
start__gte=min_date, start__lte=max_date)
Вот ошибка:
[U "'start__min' value has an invalid format and must be of the form YYYY-MM-DD HH: MM [: ss [.uuuuuuu]] [TZ]"
Вот моя функция:
def person_coming_events(person):
active_seasons = Season.objects.filter(is_active=True)
min_date, max_date = active_seasons.aggregate(Min('start'), Max('end'))
production_ids = SeasonProduction.objects.filter(season__in=active_seasons).values_list('production_id', flat=True)
return Activity.objects.filter(production_id__in=production_ids, cast__person=person,
start__gte=min_date, start__lte=max_date)
1 ответ
Агрегация возвращает словарь из двух элементов. Распаковка словаря, как вы сделали, возвращает только ключи словаря в min_date
а также max_date
; это означает, что они назначены на строки 'start__min'
а также 'end__max'
, которые не являются действительными значениями даты.
Вместо этого вы должны получить доступ к соответствующему ключу словаря и назначить значения даты для ваших переменных:
agg = active_seasons.aggregate(Min('start'), Max('end'))
min_date, max_date = agg['start__min'], agg['end__max']
Кстати, вы должны рассмотреть возможность обновления с Django1.6