Django mod中字段的赋值

2024-10-04 03:21:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我给PictureBook模型添加了一个方法

class PictureBook(models.Model):
    license = models.CharField(max_length=200, unique=True)
    activate_count = models.IntegerField(default=0)

    # check if the license is available.
    def activate(self, license=None):
        if self.activate_count != 2 and self.license == license:
            import pdb; pdb.set_trace()
            self.activate_count += 1
            return True
        else:
            return False

然后在views.py中调用activate(),我补充道

import pdb; pdb.set_trace()

然后我看到输出

-> self.activate_count += 1
(Pdb) 

我输入“c”,程序继续。我在admin中检查值activate_count,它应该是1,但仍然是0。提前谢谢


Tags: 方法模型importselftruereturniflicense
2条回答

您没有保存模型实例

您必须在增加self.save()之后添加它,这样它才能真正保存您所做的更改:

def activate(self, license=None):
        if self.activate_count != 2 and self.license == license:
            import pdb; pdb.set_trace()
            self.activate_count += 1
            self.save()
            return True
        else:
            return False

相关问题 更多 >