問題を正しく理解していれば、時間表のオブジェクトをフィルタリングして値を更新する必要があります。
まず、このの戻り値のリストは10進数のリストではありません。したがって、hours
を取得する必要がある場合は、これを行う必要がありますhour = result[0].get('hours')
。しかし、その後はhours = hours + 1.5
を実行することはできません。
import decimal
result = Hours.objects.filter(fullname=fullname).values('hours')
hour = result[0].get('hours')
hour_difference = decimal.Decimal(1.5)
hour = hour + hour_difference
しかし、ジャンゴとあなたは更新がはるかに簡単に行うことができます:hours
はDecimal種類があり、小数点第一にフロートである1.5を変換する必要があるため。ただ、updateを使用します。
Hours.objects.filter(fullname=fullname).update(hours=20.5)
あなたは現在の値をインクリメントする必要がある場合、あなたはF expressionでそれを行うことができます。
from django.db.models import F
Hours.objects.filter(fullname=fullname).update(hours=F('hours') + 1.5)
これはそれhours
フィールド1.5
だと保存するために追加のフィルタに関連したすべての時間のオブジェクトを取得しますそれ。
時間モデルはどのように見えますか? –
初心者の場合は '.values(" hours ")'(引用符に注意してください)でなければなりません。あなたの 'models.py'を投稿せずに、何も言えません。 – Selcuk