Django教程pub_date__year过滤器工作,pub_date__second过滤器没有

时间:2013-04-16 22:08:53

标签: python django django-models python-2.7

我正在通过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不会。我在这里的语法中遗漏了什么吗?

1 个答案:

答案 0 :(得分:2)

是如果文档是最新的,则这些字段查找(秒,小时,分钟)尚未在主分支中

https://docs.djangoproject.com/en/dev/ref/models/querysets/#hour

  

Django Development版本的新功能。

你在运行哪个版本的django? 1.5?你可以在github上查看源代码