2009-11-29 38 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

相關問題