Я начал проект с django1.9 и python-3.4.4. Я создал приложение, чтобы отслеживать потребление энергии, воды и газа. Я начал этот проект, чтобы лучше узнать django и python.Расчет Django на основе значений формы и базы данных
Я создал форму, где у меня есть два поля. Один для типа счетчика и один для значения. Теперь я хочу получить последнее значение из базы данных и сделать простой расчет.
delta = value_db - value_form
models.py
class Verbraucher(models.Model):
Id = models.AutoField(primary_key=True)
Typ = models.CharField(max_length=50)
Nummer = models.CharField(max_length=50, unique=True)
def __str__(self):
return format(self.Typ)
class Daten(models.Model):
Daten_id = models.AutoField(primary_key=True)
Verbraucher = models.ForeignKey(Verbraucher)
Stand = models.DecimalField(max_digits=10, decimal_places=3)
Verbrauch = models.DecimalField(max_digits=10, decimal_places=3)
Zeitstempel = models.DateTimeField(auto_now=True, auto_now_add=False)
Updatestempel = models.DateTimeField(auto_now=False, auto_now_add=True)
def __str__(self):
return format(self.Zeitstempel)
forms.py
class DatenForm(forms.ModelForm):
class Meta:
model = Daten
fields = ['Verbraucher', 'Stand']
views.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('/')
Я пробовал разные способы, но ни один из них не работает. Надеюсь, что у кого-то есть идея помочь мне! Большое спасибо!
EDIT:
Вся идея его ист иметь локальный веб-сайт, где у вас есть небольшой вид двух полей. Один для типа счетчика и один для значения, которое он имеет сегодня. Впоследствии я хочу получить последнее значение из базы данных этого счетчика и вычесть бота. Затем вычисленное значение должно быть вставлено в db. Надеюсь, это поможет ?!
EDIT2:
Я поиграл немного araound и обнаружил ошибку. Получаю, если я хочу сделать расчет. unsupported operand type(s) for -: 'decimal.Decimal' and 'Daten'
Странная вещь, что я определил как в качестве знаков после запятой в моем файле модели ... Это код (views.py после формы = DatenForm (request.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()
Вы должны написать описатель проблемы. Каким образом это «не работает»? Что происходит? есть ли журналы ошибок? – TomDunning
У меня нет ошибки. Я отправляю форму и ничего не происходит. Я думаю, что это имеет какое-то отношение к этой части: кода Stand_db = Daten.objects.lastest (Verbraucher) instance.Verbrauch = do_calc (Stand-Stand_db) Кажется, что расчет не выполняется. – MFIC
Я думаю, что у вас может возникнуть проблема в том, что вы используете «lastest» вместо «latest» – madprops