1

と の 2 つのメソッドを持つモデル オブジェクトがexpiredありpendingます。期限切れのマネージャーは正常に機能し、フィールドを更新します。保留中のマネージャーは機能しません。これが私のコードです。

補足:ビューで 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

これらのオプションはどれも機能していないようです。誰かが私を助けてくれませんか。ありがとう

4

2 に答える 2

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
于 2013-03-08T01:21:45.063 に答える
0

変更を保持するには、モデルを更新して保存する必要があります。

  1. self.pending = False
  2. self.save()

fieldまた、の代わりに意味すると思いますmanagerモデル マネージャーの詳細

于 2013-03-07T23:56:02.517 に答える