我对基于类的视图相当陌生,所以这可能是显而易见的,但任何提示都值得赞赏。我想为列表中的每个项目显示"剩余时间"。 也就是说,如果我有 10 个对象,每个对象都应该在模板中显示截止日期到来之前剩余的天数、小时数、mn。 这是我的尝试:
model.py
class Law(models.Model):
deadline = models.DateTimeField(_(u'The Deadline'),)
name = ..
more_stuff = ..
views.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}}
. 视图有没有办法计算这个并将其传递给模板?
我想向"LawList"视图添加一个get_context_data
,但我不知道如何为列表中的每个项目执行此操作。 以下是适用于单个项目的内容。
# 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()
但我有点卡住了。谢谢!
看看timeuntil
模板标签