1

このコードはエラーを出し続けます。Django モデルにフィールド (datetime) が呼び出さinvite_sentれ、同じモデルにcheck_timeCheck timeという別のフィールドがありinvite sent、特定のアクションが発生するまでの時間です。何らかの理由で、私のコードは機能しません。

models.py

class Game(models.Model):
    title = models.CharField(max_length=50)
    summery = models.CharField(max_length=500)
    pin = models.CharField(max_length=12)
    key = models.CharField(max_length=12)
    complete = models.BooleanField()
    invite_sent = models.DateTimeField() #<-----------
    check_time = models.IntegerField() #<-----------
    on = models.ForeignKey("Member", related_name="turn", blank=True,  null=True)

ビュー.py

def check_time():
    games = Game.objects.filter(complete = False)
    for g in games:
        hours = (datetime.datetime - g.invite_sent)/60/60 # trying to get hours between now and then
        if not hours > g.check_time: #stuff beyond this is not really important to the issue
            continue
        send_overtime(g)
        set_on(g)
        send_invite(g)
4

1 に答える 1

4

この行に問題がありますhours = (datetime.datetime - g.invite_sent)/60/60

  • datetime.datetime.now()代わりに使用する必要がありますdatetime.datetime(呼び出す必要があるモジュールオブジェクトです.now()
  • datetime2 つのオブジェクトを減算すると、時間に変換するtimedeltaメソッドを使用するオブジェクトが得られます.total_seconds()

したがって、バグのあるコード行は次のようになります。

hours = (datetime.datetime.now() - g.invite_sent.replace(tzinfo=None)).total_seconds() / 60 / 60
于 2012-12-28T10:09:52.933 に答える