Показать SVG для нового контента в Django - PullRequest
0 голосов
/ 28 мая 2018

Я хочу отображать SVG для любого нового контента, созданного за последние 2 дня.Мне просто интересно, как бы я это сделал.

views.py:

def short_story_list(request):
shorts = models.Short.objects.filter(is_live=True).order_by('-created_at')
return render(request, 'stories/short_story_list.html', {'shorts': shorts})

short_story_list.html:

{% for short in shorts %}
        <div class="block">
            <h3><a href="{% url 'short-detail' short.slug %}">{{ short.title }}</a></h3>
            {% if short.created_at %}
                <img src="{% static 'svg/outline-fiber_new-24px.svg' %}">
            {% endif %}
            <br>
        </div>
    {% endfor %}

Как мне убедиться, чтоотображается только SVG?

1 Ответ

0 голосов
/ 30 мая 2018
from datetime import datetime

today = datetime.date.today()
date_2_back = today - datetime.timedelta(days=2)

shorts_latest = models.Short.objects.filter(start_time__lt=today, end_time__gt=date_2_back)

Вы можете использовать timedelta(), если вы просто хотите shorts за последние 2 дня.

В качестве альтернативы, вы можете добавить функцию в модель, которая возвращает true, если created_atлежит между двумя датами:

def latest_condition(self):
    if self.created_at - datetime.date.today() <= datetime.timedelta(days=2):
          return True
    else:
          return False
...