Я новичок в представлениях на основе классов, так что это, вероятно, очевидно, но любые советы приветствуются. Я хочу отображать «оставшееся время» для каждого элемента в списке. То есть если у меня 10 объектов, каждый должен отображать в шаблоне количество дней, часов, мн, оставшихся до наступления дедлайна. Вот моя попытка:
модель.py
class Law(models.Model):
deadline = models.DateTimeField(_(u'The Deadline'),)
name = ..
more_stuff = ..
просмотры.py
class LawList(ListView):
model = Law
context_object_name = 'law'
template_name = 'template.html'
шаблон.html
{% for l in law %}
<h3>{{ l.deadline }} - {{l.name }} </h3>
{{l.more_stuff}}
{% endfor %}
все хорошо до сих пор. Однако я хотел бы иметь {{l.time-left}}
вместо {{l.deadline}}
. Есть ли способ для представления вычислить это и передать в шаблон?
Я думал добавить get_context_data
в представление «LawList», но я не знаю, как это сделать для каждого элемента в моем списке. Ниже показано, что работает для одного элемента.
# views.py, below the section above
def get_context_data(self, **kwargs):
context = super(LawList, self).get_context_data(**kwargs)
context['time_left'] = Law.objects.all()[0].deadline - timezone.now()
но я немного застрял. Спасибо!