0

ビュー.py

            AppTruepower = form.cleaned_data['truepower_reading']
            AppApparent = form.cleaned_data['apparentpower_reading']
            AppVoltage = form.cleaned_data['voltage_reading']
            AppDate = form.cleaned_data['Date']
            AppTime = form.cleaned_data['Time']
            prevdate=KEBReading.objects.latest("id")
            print prevdate.truepower_reading
            print id
            KEBReading.objects.filter(id=id).update(truepower_reading=AppTruepower,apparentpower_reading=AppApparent,
                                                        voltage_reading=AppVoltage,datetime_reading=datetime.combine(AppDate,AppTime))


            a=KEBReading.objects.filter(id=id).values("truepower_reading")
            print a
            b=KEBReading.objects.filter(id=id).values("apparentpower_reading")
            print b
            print prevdate.truepower_reading

djangoフォームで行を編集するとき。計算を行うために前の行にアクセスする必要があります。前の行を取得する方法を教えてください。model.s.object.latest() を使用すると、最後に入力された行が取得されますが、私の場合は前の行、つまり編集しようとしている現在の行の前の行を取得する必要があります。

4

1 に答える 1

0

行の順序によって異なります。前の行がid必要な場合は、

curr_row = KEBReading.objects.filter(id=current_id)
#decrement id until you find valid record, as previous id might have deleted.
prev_row = KEBReading.objects.filter(id=current_id-1) 

他のフィールドで注文したい場合は

rows = KEBReading.objects.order_by('-some_field_to_order') # use - for reverse ordering
current_row = rows[0]
prev_row = rows[1]  
#verify for index errors though.
于 2013-02-15T11:44:19.760 に答える