我从django1.9和python-3.4.4开始这个项目。 我已经建立了一个应用程序来跟踪我的能源,水和天然气消耗。我开始这个项目是为了更好地了解django和python。在
我创建了一个有两个字段的表单。一个用于计数器类型,另一个用于值。 现在我想从数据库中获取最新的值并进行简单的计算。在
delta = value_db - value_form
模型.py
^{pr2}$表单.py
class DatenForm(forms.ModelForm):
class Meta:
model = Daten
fields = ['Verbraucher', 'Stand']
视图.py
def dateneingabe(request):
if request.method == "GET":
form = DatenForm()
return render(request, 'verbrauch/eingabe.html', {'form': form})
elif request.method == "POST":
form = DatenForm(request.POST)
model = Daten()
if form.is_valid():
instance = form.save(commit=False)
Stand_db = Daten.objects.lastest(Verbraucher)
instance.Verbrauch = do_calc(Stand - Stand_db)
instance.save()
return HttpResponseRedirect('/')
我试过各种方法,但似乎都不管用。 我希望有人有个主意来帮我! 前面非常感谢!在
编辑:
它背后的全部想法是有一个本地网站,你有一个小形式的两个领域。一个表示计数器的类型,另一个表示它今天的值。 然后我想从这个计数器的数据库中得到最新的值并减去bot。然后,应将计算值插入db中。 我希望这有帮助?!在
编辑2:
我弹了一点,发现了一个错误。
我明白了,如果我想计算的话。
unsupported operand type(s) for -: 'decimal.Decimal' and 'Daten'
奇怪的是,我在我的模型文件中都定义了小数。。。
这是密码(视图.py在form=DatenForm之后(请求.POST)):
if form.is_valid():
instance = form.save(commit=False)
Stand = form.cleaned_data['Stand']
print(Stand)
Stand_db = Daten.objects.latest('Stand')
print(Stand_db)
Verbrauch = (Stand - Stand_db)
print(Verbrauch)
instance.save()
非常感谢大家的支持和想法! 我已经设法解决了我的问题:
Stand_db给出字典中所选计数器的最后一个十进制值。 为了得到实际值,我必须把键和名称分开。 Stand\u db2正在这样做。在
最后我做了计算并保存了记录。在
首先,安排你的观点是不好的,虽然它会工作。已验证的表单数据将在
form.cleaned_data
字典中。这些数据已经被很好地转换为Python类型。IntegerField、DecimalField和FloatField等字段将值分别转换为Python int、Decimal和float。在我希望它能帮上忙
相关问题 更多 >
编程相关推荐