我正在通过Django教程,我有一个模型如下。
class Poll(models.Model):
question = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
我按照给定的指示构建了一个民意调查。
p = Poll(question="What's new?", pub_date=timezone.now())
p.save()
当我使用他们提供的过滤器时,它会给我一个有效的结果。
>>> Poll.objects.filter(pub_date__year=2013)
[<Poll: What's new?>]
但是当我尝试按秒(例如)过滤时,它会失败。
>>> Poll.objects.filter(pub_date__second=57)
FieldError: Join on field 'pub_date' not permitted. Did you misspell 'second' for the lookup type?
好吧,也许pub_date字段可能没有有效的第二个。
>>> Poll.objects.get(id=1).pub_date.second
57
嗯。所以它确实有一个有效的秒,但不知何故我不能用它过滤。如果我继续尝试,__ day和__month工作正常,但__hour,__minute和__second不会。我在这里的语法中遗漏了什么吗?
答案 0 :(得分:2)
是如果文档是最新的,则这些字段查找(秒,小时,分钟)尚未在主分支中
https://docs.djangoproject.com/en/dev/ref/models/querysets/#hour
Django Development版本的新功能。
你在运行哪个版本的django? 1.5?你可以在github上查看源代码