1

私は Django 1.4 に取り組んでいますが、次の疑問があります。Django Admin で日付を解析する場合、形式は「%Y-%m-%d」の形式にする必要があります。コードを確認したところ、django モデルの DateField は設定を使用して「to_python」の有効な日付を確認していません。

たとえば、現在有効な形式は次のとおりです。

&fecha_inicio__lte=2012-06-10

しかし、私はそれも望んでいます:

&fecha_inicio__lte=06/10/2012
4

1 に答える 1

2

この関数を使用して、日付を変換できます。

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のコードを読み取っただけで、読み取れません。

于 2012-06-11T06:53:40.793 に答える