2

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

4

1 回答 1

2

是 如果文档是最新的,那么这些字段查找(秒、小时、分钟)还没有在主分支中

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

Django 开发版本中的新功能。

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

于 2013-04-16T22:28:38.627 回答