views.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()我得到最后一行输入,但在我的情况下,我需要得到前一行,即当前行的前一行即将编辑。
答案 0 :(得分: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.