Показать пробелы в датах с Python и Django - PullRequest
2 голосов
/ 29 ноября 2009

Я создаю приложение, которое требует, чтобы каждый пользователь делал посты ежедневно. Я хотел бы отобразить пробелы в датах, когда пользователи не создавали сообщения. Так как вставлять пустые строки базы данных для пустых постов не очень хорошая идея, я вставляю запись, только когда пользователь добавляет пост.

Модель содержит поле с именем log_date. Я в растерянности из-за того, как отображать пробелы в шаблоне Django. Вот как я хотел бы, чтобы выходные данные в шаблоне выглядели так:

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

Заранее спасибо за любую помощь. Дайте мне знать, если я смогу предоставить дополнительную информацию.

1 Ответ

4 голосов
/ 29 ноября 2009

Я рекомендую создать набор дат, которые опубликовал пользователь, затем начать с самой ранней даты и повторять до текущего дня. Для каждого дня выведите дату и проверьте, существует ли сообщение для этого дня. Используя набор, мы можем выполнять эту проверку за постоянное время, но это не имеет значения.

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, но это должно дать вам хорошую отправную точку для создания хорошего шаблона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...