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、__minutes、および __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 に答える