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

时间:2012-05-31 23:03:00

标签: 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 = ''

views.py:

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

2 个答案:

答案 0 :(得分:4)

这是一种可以接受的方式,虽然您不需要对其进行初始化,除非您有可能在它不存在时尝试访问它。另外,请考虑您是否应该使用属性。

答案 1 :(得分:1)

只需声明另一个变量而无需映射到模型属性:

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