Django导入日期时间

For*_*est 3 python django import

使用:

嗨,我是一个python初学者,来自PHP背景,所以我很抱歉这是一个愚蠢的问题.我试图调用p.was_published_today()时遇到困难.它输出此错误:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/path/to/mysite/polls/models.py", line 12, in was_published_today
    pub_date = models.DateTimeField('date published')
NameError: global name 'datetime' is not defined
Run Code Online (Sandbox Code Playgroud)

但是我的models.py中的代码看起来(对我来说)与我应该根据教程完全一样:

from django.db import models 
import datetime

# Create your models here.

class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    def __unicode__(self):
        return self.question
    def was_published_today(self):
        return self.pub_date.date() == datetime.date.today()

# other code but not relevant to the error
Run Code Online (Sandbox Code Playgroud)

我在这里看到其他人在询问与本教程中没有工作的日期时间非常相似的问题,但是他们的答案实际上并没有帮助我实现它.它适用于python解释器,但不适用于脚本.我很困惑,我一直在研究这个细节45分钟.有人有线索吗?

rol*_*one 11

确保在视图中导入日期时间.加:

import datetime
Run Code Online (Sandbox Code Playgroud)

到Views.py页面.曾经为此问题打过一张票:

https://code.djangoproject.com/ticket/5668

  • 只是为了强调:问题是他还需要在**视图**中导入`datetime`. (4认同)
  • 这实际上是他的models.py页面,错误表明还没有导入日期时间模块. (2认同)

Eva*_*ter 5

请尝试以下方法:

from datetime import datetime
Run Code Online (Sandbox Code Playgroud)

然后你的代码应该工作.datetime是包名称,里面是datetime你想要使用的.


Mus*_*han 5

你可以使用这个:浏览Django Utils Timezone链接

from django.utils.timezone您可以导入is_aware,is_naive现在并可以根据您的要求进行自定义:

Timezone-related classes and functions.

该模块pytz在可用时使用,在不可用时使用后备.

from django.utils.timezone import datetime
Run Code Online (Sandbox Code Playgroud)