【问题标题】:Django Tutorial pub_date__year filter works and pub_date__second filter doesn'tDjango 教程 pub_date__year 过滤器有效,而 pub_date__second 过滤器无效
【发布时间】:2013-04-09 12:08:04
【问题描述】:

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

【问题讨论】:

    标签: python django django-models python-2.7


    【解决方案1】:

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

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

    Django 开发版中的新功能。

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

    【讨论】:

    猜你喜欢
    • 2011-08-02
    • 2013-07-24
    • 2019-02-25
    • 2018-03-15
    • 2011-01-27
    • 1970-01-01
    • 2013-06-17
    • 2013-04-25
    • 2020-12-24
    相关资源
    最近更新 更多