django doc 上的 pycharm IDE 警告:预期类型“timedelta”,得到“DateTimeField”而不是 python 3.7 pycharm 2019.3

Gul*_*zar 2 python django

Django 的文档中是以下代码片段

from django.db import models
from django.utils import timezone
import datetime


class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

    def __str__(self):
        return self.question_text

    def was_published_recently(self):
        return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
Run Code Online (Sandbox Code Playgroud)

Pycharm亮点self.pub_date和喊话

预期类型为“timedelta”,但得到“DateTimeField”

我该如何摆脱这个并做正确的事情?

小智 6

虽然代码可以正常运行,但它遇到了 PyCharm 强调的打字问题。向 Django 提出了一张票以更正文档,但未实施就被关闭。

该解决方案也在 Django 票证中,为了完整起见,将其复制到此处。

return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
Run Code Online (Sandbox Code Playgroud)

变成

return self.pub_date >= (timezone.now() - datetime.timedelta(days=1)).timestamp()
Run Code Online (Sandbox Code Playgroud)