2
我正在通过Django教程我的方式,我有一个模型如下。Django教程pub_date__year过滤器工作和pub_date__second过滤器不
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不会。我在这里的语法中错过了什么吗?
是的,就是这样。直接从GitHub检出源码(虽然它需要安装pytz) - 我发现https://code.djangoproject.com/attachment/ticket/8424/time_filters.diff,并假设如果有人在5年前修复了它,它现在已经在提交:P谢谢! – mdierker