2012-05-31 7 views
5

Ich möchte einige Instanzvariablen für meine Modellunterklasse erstellen, aber beim Speichern des Objekts in der Datenbank möchte ich keine Tabellenspalte für diese Variable. Ich lese an einigen Stellen, die Sie dies tun würden, indem Sie init() überschreiben, wie Sie normale Instanzvariablen in anderen Klassen erstellen würden. Ist das der akzeptierte Weg für Unterklassen des Modells? Gibt es andere Ansätze?Django-Modell Instanzvariablen für transiente Verwendung

models.py:

class MyModel (models.Model): 
    name = models.CharField(max_length=300) 

    def __init__(self, *args, **kwargs): 
     super(MyModel, self).__init__(*args, **kwargs) 
     self.tempvar = '' 

views.py:

myModel = MyModel() 
myModel.tempvar = 'this will not be saved in the database' 

Antwort

3

Das es zu tun um eine akzeptable Art und Weise ist, obwohl Sie müssen es nicht initialisiert werden, es sei denn es eine Chance gibt, können Sie versuchen, um darauf zuzugreifen, wenn es nicht existiert. Überlegen Sie auch, ob Sie stattdessen eine Eigenschaft verwenden sollten.

Verwandte Themen