如何使用方法更改类属性?

Raú*_*nos 2 python django class django-models

我知道这可能是一个愚蠢的问题,但我还没有找到解决方案.

我有一个Django模型类,它有一些默认属性,我想通过调用一个函数来改变整个变量的值:

class Goal(models.Model):
    text = models.CharField(max_length=500)
    date = models.DateTimeField(auto_now=True)
    complete = False

    def set_complete_true():
        complete = True
Run Code Online (Sandbox Code Playgroud)

但是在调用set_complete_true()之后,完整变量仍为False,不会改变.

提前致谢!

Wil*_*sem 5

一个实例函数(大部分功能实例函数)具有总是被称为第一个特殊的参数self.它是对您调用该函数的对象的引用.例如,如果你打电话some_instance.foo(),然后foo调用与作为selfsome_instance.

因此,您需要添加self参数,并将其设置self.completeTrue:

class Goal(models.Model):
    text = models.CharField(max_length=500)
    date = models.DateTimeField(auto_now=True)
    complete = False

    def set_complete_true(self):
        self.complete = True
Run Code Online (Sandbox Code Playgroud)