我知道这也许是个愚蠢的问题,但我还没有找到解决办法。
我有一个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

但是在调用set_complete_true()之后,complete变量仍然为False,不会改变。
提前谢谢!

最佳答案

实例函数(大多数函数都是实例函数)有一个特殊的参数,它总是第一个被称为self。它是对调用函数的对象的引用。例如,如果调用some_instance.foo(),则使用asfoo调用self
因此,您需要添加some_instance参数,并将self设置为self.complete

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

关于python - 如何使用方法更改类属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50392787/

10-12 12:24