I would like to create some instance variables for my model subclass, but when saving the object to the database I don’t want a table column for that variable. I read in some places you would do this by overriding init() like how you would create normal instance variables in other classes. Is this the accepted way for subclasses of model? Are there other approaches?
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'
That’s an acceptable way of doing it, although you don’t need to initialize it unless there’s a chance you may try to access it when it doesn’t exist. Also, consider if you should be using a property instead.