2009-11-29 40 views
2

我在构建一个需要每个用户每天发帖的应用程序。我想在用户未发布帖子的日期显示空白。由于对于空帖子插入空数据库行似乎不是一个好主意,所以我只在用户添加帖子时插入一条记录。在Python和Django中显示日期间的差距

该模型包含一个名为log_date的字段。我不知道如何显示Django模板中的空白。这是我希望模板中的输出如下所示:

2009-11-25 
2009-11-24 
2009-11-23 NO ENTRY 
2009-11-22 NO ENTRY 
2009-11-21 

在此先感谢您的帮助。让我知道我是否可以提供更多详细信息。

回答

4

我建议构建一组用户发布的日期,然后从最早的日期开始并迭代至当天。对于每一天,打印日期并检查当天是否存在帖子。通过使用一个集合,我们可以在固定时间内进行检查,而不是这可能很重要。

days = set(Post.objects.filter(user=TARGET).values_list("log_date", flat=True)) 
curr = min(days) 
while curr <= date.today(): 
    print curr, 
    if curr not in days: 
     print "NO ENTRY", 
    print 
    curr += timedelta(days=1) 

我知道这是不是Django的模板代码,但是这应该给你,从而建立一个好的模板一个很好的起点。

+1

谢谢,Eli!这绝对有帮助。我想我回到了赛道上。 – geoffa 2009-11-29 13:07:14

+0

如果该用户发布了很多帖子,这不会很昂贵吗? – 2015-10-27 04:47:47

相关问题