django模型实例变量用于瞬态使用

pro*_*ock 8 python django

我想为我的模型子类创建一些实例变量,但是当将对象保存到数据库时,我不希望该变量的表列.我在某些地方读到你会通过覆盖init()来做到这一点,就像你在其他类中创建普通实例变量一样.这是模型子类的可接受方式吗?还有其他方法吗?

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 = ''
Run Code Online (Sandbox Code Playgroud)

views.py:

myModel = MyModel()
myModel.tempvar = 'this will not be saved in the database'
Run Code Online (Sandbox Code Playgroud)

Ign*_*ams 5

这是一种可以接受的方法,尽管您不需要初始化它,除非您有机会在它不存在时尝试访问它。另外,请考虑是否应该使用属性。