2014-07-04 32 views
0

我使用Django创建一个网站。而现在我想今天展示的注册用户数, 所以我写这篇文章的代码我怎样才能得到正确的日期时间信息到用户注册日期在Django?

from django.utils import timezone 
from django.contrib.auth import get_user_model 
    um=get_user_model() 
    now=timezone.now() 
    todayusers=um.objects.filter(date_joined__day=now.day,date_joined__month=now.month,date_joined__year=now.year).count() 

今天是2014年7月4日,我发现今天mywebsite得到两个用户注册

但它显示今天用户= 0 我不知道为什么? 所以我改变代码,使其简单

todayusers=um.objects.filter(date_joined__day=4).count() 

它显示todayusers = 0 ,我将其更改为

todayusers=um.objects.filter(date_joined__day=3).count() 

确定,这个时候,它显示出todayusers = 2

我找到一个用户,其用户ID是13,所以我得到该用户

u13=um.objects.get(ud=13) 

现在我检查其date_joined,这个日期提交

u13.date_joined.day=4 

,这意味着,它应该是7月4日,为什么当我在Django查询它,它无法找到

我的Django TIME_ZONE = 'Asia/Shanghai'

任何一个可以帮我

回答

0

看看这个工程

todayusers=um.objects.filter(date__year='2014', 
     date__month='07', date__day='04').count() 

start_date = datetime.date(2014, 7, 4) 
end_date = datetime.date(2014, 7, 4) 
todayusers = um.objects.filter(date__range=(start_date, end_date)).count() 

OR

todayusers = um.objects.filter(date__gte=datetime.datetime.today()).count() 

OR

from pytz import timezone 
from datetime import datetime 

asia_sh = timezone("Asia/Shanghai") 

startdate = datetime(2014, 07, 04, 0, 0, 0, tzinfo=asia_sh) 
enddate = datetime(2014, 07, 04, 23, 59, 59, tzinfo=aisa_sh) 


todayusers = um.objects.filter(date__range=(start_date, end_date)).count() 
+0

没有,它不工作,问题是,它总是把一天= 3就没有今天一天应该是4 – zzlettle

+0

@ zzlettle尝试um.objects.filter(date__gte = datetime.datetime.today())。count() – Adeel

+0

它显示DateTimeField MyUser.date_joined收到一个天真的日期时间(2014-07-04 19:47:47.225044),而时区支持是活性。 – zzlettle

相关问题