2

我对基于类的视图相当陌生,所以这可能很明显,但任何提示都值得赞赏。我想为列表中的每个项目显示“剩余时间”。也就是说,如果我有 10 个对象,每个对象都应该在模板中显示截止日期到来之前的天数、小时数、mn。这是我的尝试:

模型.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() 

但我有点卡住了。谢谢!

4

1 回答 1

2

看看timeuntil模板标签

于 2012-12-10T09:35:35.207 回答