Django:仅显示今天的条目时的时区问题

时间:2015-07-04 12:55:02

标签: python django

我试图抓住今天所有的条目,然后根据他或她的时区将其显示给该用户。它们通过日期时间字段存储。我所拥有的问题始终存储在GMT中,因此当我提取今天的记录时,它们会在日期方面交叉,因此有些条目可能是7月3日,有些条目可能是7月4日。然后,当它通过时区标签向用户显示时(例如东部时间),用户将显示昨天的条目以及今天的条目。我可以使用任何标记或不同方法来解决此问题。

Views.py

 def get_entry(request):
    start_date = timezone.now().date()
    end_date = start_date + timedelta( days=1 )
    todays_entry = game.objects.filter(date__range=(start_date,end_date)).order_by('date').all()
    return render(request, 'home.html', {'todays_entry':todays_entry})

Template.py

 {% load tz %}
 {% localtime on %}
   {% for x in todays_entry %}
      {{x.date}}.........
   {% endfor %}
 {% endlocaltime %}

输出类似于

July 3, 2015, 8:05 p.m, 
July 3, 2015, 9:05 p.m, 
July 4, 2015, 1:05 p.m, 
July 4, 2015, 1:05 p.m

我真正想要的只是今天的东西...

1 个答案:

答案 0 :(得分:1)

你可以尝试:

def get_entry(request):
   today = datetime.datetime.now().today()
   todays_entry = game.objects.filter(date__year=today.year, date__month=today.month, date__day=today.day)
   return render(request, 'home.html', {'todays_entry':todays_entry})

过滤后你不需要.all()