私はDjangoモデルに24時間フォーマットで時間を保存しようとしています。私はモデルでTimeFieldを使用しています。これまでのところ、標準の12時間形式で時間を保存しようとすると動作します。 しかし、24時間形式で時間を保存しようとすると、もう機能しなくなり、有効な時間を与えるというエラーが表示されます。TimeFieldのDjangoモデルに24時間制の軍事フォーマット時間を保存する方法
私のアプリケーションは、時間単位でクレジットを保存します。ユーザーは、消費したい時間数を支払ってそれに応じて支払います。残りのクレジットはremaining_session_credits
に保存します。ユーザーが登録すると、ユーザーは最大24の整数を入力します。つまり、ユーザーは最大24時間のクレジットしか使用できません。これが私が24の整数をTimeFieldに格納しようとしている理由です。
ここに私のコードは、これまでのところです:
マイモデルここ
session_credits = models.TimeField(blank=True, null=True)
remaining_session_credits = models.TimeField(blank=True, null=True)
マイビュー
def save_enrollment(request):
try:
data = json.loads(request.body.decode("utf-8"), parse_float=decimal.Decimal) if request.body.decode("utf-8") else {}
if data.get("session_credits", None) is not None:
data["remaining_session_credits"] = timedelta(hours=data.get("session_credits"))
return success("Success!")
except Exception as e:
return HttpResponse(str(e), status=400)
data.get("session_credits")
は、私は時間に変換してるの整数です。たとえば、data.get('session_credits') = 24
24
は時間形式で、モデルのTimeFieldに保存されます。
質問にあなたのコードを追加できますか? –
@RodXavier私のコードを追加しました – Mikebarson
'timedelta'オブジェクトを' datetime'フィールドに割り当てています。 –