Django模型方法无法更新模型字段
我有一个模型对象,它里面有两个方法:expired
和pending
。过期的管理器工作得很好,可以更新字段。而待处理的管理器却不行。以下是我的代码。
顺便提一下:我在一个视图中把待处理设置为真。
models.py:
class Job(models.Model):
expired=models.BooleanField(default=False)
pending=models.BooleanField(default=False)
purchased=models.DateTimeField(auto_now_add=True)
time=models.PositiveIntegerField(blank=False)
def job_expired(self):
time=self.time
date=self.purchased
end=date+timedelta(days=time)
#now is defined globally
if now > end:
ex=self.expired=True
#i've tried these two ways below
self.pending=False
#or
ax=self.pending=False
ax.save()
else:
ex=self.expired=False
return ex
我再强调一下,更新过期字段是没问题的,但待处理字段却不行。我还尝试了一个单独的方法:
def job pending(self):
if self.expired:
self.pending=False
这些选项都似乎不管用。有人能帮我一下吗?谢谢。
2 个回答
1
为了让更改生效,你需要先更新模型,然后再保存它:
self.pending = False
(把待处理状态设为假)self.save()
(保存更改)
另外,我觉得你是想说field
(字段),而不是manager
(管理器)。想了解更多,可以查看模型管理器的相关信息。
2
def job_expired(self):
time=self.time
date=self.purchased
end=date+timedelta(days=time)
#now is defined globally
if now > end:
self.expired = True
self.pending = False
self.save()
ex = self.expired
else:
ex=self.expired=False
return ex
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。