0

タイムスタンプがあるモデル名 Ratings があります。ユーザーの評価を 1 日 3 回に制限したい。特定のユーザーの過去 24 時間の評価数を取得するにはどうすればよいですか?

class Ratings(models.Model):   
    user = models.ForeignKey(User)
    book = models.ForeignKey('Books')
    rating = models.IntegerField(max_length=150)
    timestamp = models.DateTimeField(auto_now_add=True)
    is_checkedin_rating = models.BooleanField()

編集*より明確にするために、特定のユーザーによる24時間の評価の数を見つけたい. たとえば、5/13 午前 12 時から 5/14 午前 12 時までの評価の数を取得します。

4

1 に答える 1

1
import datetime

today = datetime.date.today()
end_time = datetime.datetime.fromordinal(today.toordinal()) // today at 12:00am or 00:00
start_time = end_time -  datetime.timedelta(days=1) yesterday at 12:00am

count = Ratings.objects.filter(
    user=some_user,
    timestamp__gte=start_time,
    timestamp__lte=end_time
).count()
于 2012-05-15T02:25:37.683 に答える