Django Probleme mit Dezimalzahlen
Verfasst: Sonntag 18. Juli 2021, 17:21
Hallo,
ich war mir sicher die Frage heute Mittag schon gestellt zu haben, finde sie aber nicht mehr. Falls sie doch noch auftaucht, bitte ich die Dublette zu entschuldigen. Auch wenn ich vor kurzen mit Python und Django angefangen habe, kann ich auf einen großen Erfahrungsschatz in PHP und dessen Frameworks nachweisen. Jedoch stehe ich gerade an einer Stelle, die ich mir nicht erklären kann. Wenn ich eine Abfrage gegen eine Datenbank-Tabelle schicke, bekomme ich folgende Fehlermeldung:
Das Modell sieht so aus:
In der Datenbank (sqllite) stehen entweder Zahlen wie 5,001 oder -15,001 oder 1(zeigt mir so der DBeaver an, ist aber wahrscheinlich 1,000) oder halt NULL. Ich bin mir nur nicht sicher, ob in der DB als Dezimaltrennzeichen ein Punkt oder ein Komma verwendet wurde. Ich gehe aber von einem Punkt aus. Ebenso habe ich diese Probleme, wenn ich Dezimalwerte in die DB speichern möchte.
Ich selber kann mir den Fehler nicht erklären und auch in anderen Foren habe ich nicht wirklich etwas gefunden.
Habt Ihr eine Idee, wo mein Denkfehler ist?
Danke und Gruß Patrick
ich war mir sicher die Frage heute Mittag schon gestellt zu haben, finde sie aber nicht mehr. Falls sie doch noch auftaucht, bitte ich die Dublette zu entschuldigen. Auch wenn ich vor kurzen mit Python und Django angefangen habe, kann ich auf einen großen Erfahrungsschatz in PHP und dessen Frameworks nachweisen. Jedoch stehe ich gerade an einer Stelle, die ich mir nicht erklären kann. Wenn ich eine Abfrage gegen eine Datenbank-Tabelle schicke, bekomme ich folgende Fehlermeldung:
Die Abfrage geht wie folgt:InvalidOperation([<class 'decimal.InvalidOperation'>])
Code: Alles auswählen
date_conditions = Conditions.objects.get(field='date',scope='qlikview');
Code: Alles auswählen
class Conditions(models.Model):
scope = models.CharField(max_length=200)
field = models.CharField(max_length=200)
source = models.ForeignKey(Source, on_delete=models.CASCADE, null=True, related_name='%(class)s_source')
ok_min = models.DecimalField(max_digits=3, decimal_places=3, null=True)
ok_max = models.DecimalField(max_digits=3, decimal_places=3, null=True)
info_min = models.DecimalField(max_digits=3, decimal_places=3, null=True)
info_max = models.DecimalField(max_digits=3, decimal_places=3, null=True)
warn_min = models.DecimalField(max_digits=3, decimal_places=3, null=True)
warn_max = models.DecimalField(max_digits=3, decimal_places=3, null=True)
error_min = models.DecimalField(max_digits=3, decimal_places=3, null=True)
error_max = models.DecimalField(max_digits=3, decimal_places=3, null=True)
Ich selber kann mir den Fehler nicht erklären und auch in anderen Foren habe ich nicht wirklich etwas gefunden.
Habt Ihr eine Idee, wo mein Denkfehler ist?
Danke und Gruß Patrick