Я сталкиваюсь с несовместимостью при обработке sqllite3 DATEFIELD между Digikam (программное обеспечение для управления фотографиями) и Django (веб-среда Python) .Я столкнулся с проблемой, потому что я пытаюсь написать приложение Django, которое предоставит интерфейс веб-страницы для моей коллекции фотографий на основе моей базы данных Digikam.
База данных была создана Digikam, и все DATEFIELDS находятся в этомформат (с помощью браузера базы данных SQLite для просмотра таблиц):
**2011-02-06T19:06:28**
Когда Django сохраняет даты (используя поле DateTime Django), формат в базе данных:
**2011-03-04 00:24:07.013620**
Djangoдроссели, когда он встречает дату / время, созданные Digikam:
/usr/lib/python2.6/dist-packages/django/db/backends/util.py in typecast_date(s)
58
59 def typecast_date(s):
---> 60 return s and datetime.date(*map(int, s.split('-'))) or None # returns None if s is null
61
62 def typecast_time(s): # does NOT store time zone information
ValueError: invalid literal for int() with base 10: '03T15:53:14'
Итак, возникает несколько вопросов:
- Какой из этих форматов даты действителен?
- Разве sqllite не проверяет ввод даты и времени?
- Есть ли простой способ заставить Django счастливо читать даты в формате Digikam?
Спасибо!