3

パターンを示すこのコミットでは、現在 1900 年を超える日付が必要であることがわかりまし_datereたが、... 今日調べてみるとdjango.core.validators、このようなものは見当たりません (上記にリンクされているコミットは、7 年前のものだと言っています)。

django でのこの検証はどうなりましたか? また、この種の検証を取得するために、今日 Django 1.4.1 で何を使用していますか?

strftime エラーのため、私はこれを求めています:

"ValueError('year=1800 is before 1900; the datetime strftime() methods require year >= 1900',)"

ありがとうございました!

4

2 に答える 2

5

@SimeonVisser は、この例外を受け取っていた理由と、もう受け取っていない理由について素晴らしい説明をしてくれました。

実際の固有の制限としてではなく、ビジネス ロジックとして 1900 年より後の日付が必要な場合は、組み込みの Django を使用できるはずですMinValueValidator。1900-01-01 の日付/日時を入力するだけです。

validators=[MinValueValidator(datetime(1900, 1, 1, 0, 0))]
于 2012-09-07T19:26:17.210 に答える
3

このコミットの時点で、django.utils.datetime_safe1900年未満の日付をサポートする新しいモジュールがあります。

strftime1900年未満の日付をサポートする場合は、そのモジュールから使用できます。同様に、 ( )を使用して、 1900年未満の年をサポートするnew_datetimenew_date)を取得できます。datetimedate

value = datetime_safe.new_datetime(value)
# or:
value = datetime_safe.new_date(value)

もう1つの方法は、フォーム用のカスタムバリデーターを自分で作成し、年が1900年以上であることを強制することです。

于 2012-09-07T17:42:06.303 に答える