from datetime import datetime, timedelta
from django.utils.dateparse import parse_date
私は、設定された時間帯またはカスタム時間帯のいずれかからデータベースログを要求できるようにしようとしています。カスタムの時間帯を通じて送信するとき、私は0
の値を使用し、それを測定するint
に変換しますDjangoとPython 3、POST値が同じでない場合
camera_id = request.GET.get('camera_id', None)
range = request.GET.get('range', None)
start = request.GET.get('start', None)
end = request.GET.get('end', None)
if int(range) == 0:
end_date = parse_date(start)
start_date = parse_date(end)
else:
end_date = datetime.now()
start_date = end_date - timedelta(hours=int(range))
data = []
camera_logs = CameraLog.objects.filter(camera_id=camera_id, created_at__range=(start_date, end_date))
しかし、カスタムの日付範囲を選択するとき、私は、データベースから戻って何も届きません。私は標準の時間単位(3のような)を要求するときにデータを取得しますが、私の日付が正しく解析されているかどうかはわかりません。
私は本当にif int(range) == 0:
が本当であるとは思わない...と私は理由が分からない。これを行うより良い方法はありますか?
'parse_date'は' start'と 'end'が' yyyy-mm-dd'という形式の日付であることを期待しています。そうでない場合はNoneを返します。 –
@ThierryLathuilleのように、タイムスタンプもできません。私はこのような文字列を送ります: '2017-02-22 17:01:04' – dcolumbus
まさに。この場合、 'parse_datetime'を使う必要があります。 –