Django模型方法不会更新模型字段

时间:2013-03-07 23:40:16

标签: python django web-applications

我有一个模型对象,有两种方法:expiredpending。过期的经理工作正常并更新该字段。待处理的经理不起作用。这是我的代码。

旁注:我在视图中将pending设置为true。

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 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

为了更改这些更改,您需要更新模型然后保存:

  1. self.pending = False
  2. self.save()
  3. 我认为你的意思是field而不是manager。有关model managers

    的更多信息