Django 导入 datetime
使用的环境:
- Ubuntu 11.04
- Django 1.3
- Python 2.7
- 正在按照这个教程进行学习:写你的第一个Django应用,第一部分
你好,我是个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
但是我在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
我看到这里有其他人问过类似的问题,都是关于这个教程中datetime不工作的,但他们的回答对我并没有帮助。它在Python解释器中可以正常工作,但在脚本中却不行。我感到很困惑,已经在这个细节上花了45分钟了。有没有人知道怎么解决?
4 个回答
5
试试下面这个:
from datetime import datetime
这样你的代码就应该能正常运行了。datetime
是一个包的名字,而里面有你想用的 datetime
。
6
你可以使用这个链接:Django Utils Timezone
从 django.utils.timezone
这个模块里,你可以导入 is_aware
、is_naive
和 now
,然后根据你的需求进行自定义:
与时区相关的类和函数。
这个模块会在有 pytz
的情况下使用它,如果没有的话就会使用其他方式。
from django.utils.timezone import datetime
14
确保你在你的视图文件中导入了datetime。添加:
import datetime
到你的Views.py页面中。之前有个问题的票据是为了解决这个问题: