Es könnte sein, daß mein Problem eher in "Allgemeine Fragen" gehört. Da meine "Problemklassen" aber Django Models sind, habe ich mich entschieden es hier zu posten.
Ich bin gerade dabei, ein Django Projekt auf Django 3.x zu upgraden. Die existierende Applikation wurde in Python 2 geschrieben. Meine aktuelle Baustelle sind Models, die so etwas enthalten:
Code: Alles auswählen
bla = models.FloatField('Beschreibung', null=True)
Code: Alles auswählen
if self.bla > 0:
# do something
Da die Datenbank noch von anderen Instanzen der Applikation benutzt wird, kann ich nicht einfach 'null=False' setzen und den Datenbestand verändern, ohne weitere Probleme zu riskieren.
Es wäre schön, wenn es eine Möglichkeit gäbe, da einen Getter zu schreiben, der so aussieht:
Code: Alles auswählen
def get_bla(self):
if self.bla is None:
return 0
return self.bla
Meine bisherigen Recherchen ergeben, dass ich wohl mit so etwas am nächsten ran komme:
Code: Alles auswählen
@property
def encapsulated_bla(self):
if self.bla is None:
return 0
return self.bla
Gibt es dafür eine elegantere Lösung?