この関数を使用して、日付を変換できます。
import re
def parse_slash_date(value):
m = re.match(r'^(?P<day>[0-9]{1,2})/(?P<month>[0-9]{1,2})/(?P<year>[0-9]{4})$', value)
if m:
return '%s-%s-%s' % (
m.group('year'), m.group('month'), m.group('day'))
例:
In [4]: parse_slash_date('06/10/2012')
Out[4]: '2012-10-06'
パーサーを使用するDateFieldを作成することもできます。
class YourDateField(models.DateField):
def get_prep_lookup(self, lookup_type, value):
if value and '/' in value:
value = parse_slash_date(value)
return super(YourDateField, self).get_prep_lookup(
lookup_type, value)
ただし、DateFieldはすでにスラッシュを使用して日付を解析できると確信していました...しかし、django.utils.dateparse.parse_dateのコードを読み取っただけで、読み取れません。