django模板的时间限制

时间:2016-01-07 10:16:54

标签: python django django-templates django-views

我需要时间限制的帮助。我想告诉用户他有多少时间租车。 这是我的观点:

class CarRentView(RedirectView):
    permanent = False
    query_string = True
    model = Car 

def date_of_return(request):
    car = Car.objects.all()
    car.rent = True
    date_of_rent = datetime.now()
    date_of_rent = car.save()
    car_return_date = date_of_rent+timedelta(days=30)
    return render(request, 'cars','car_return_date')

当我想在我的模板中执行此操作时:

{{ car_return_date }}

没有什么,我不知道,有什么不对。是否有可能显示返回日期并在此之后进行计数?

3 个答案:

答案 0 :(得分:0)

您需要以不同方式调用渲染函数:

return render(request, 'myapp/index.html', {'cars': car, 'car_return_date': car_return_date})

有关详细信息,请参阅docs

此外,我认为您没有正确设置car.rent,因为您在所有汽车上进行设置。

答案 1 :(得分:0)

返回到模板的变量需要作为上下文字典的一部分返回。所以你会:

return render(request, 'my_template.html', {'car': car, 'car_return_date': car_return_date})

car_return_date变量随后将在您的模板中使用:

{{ car_return_date }}

输出datetime对象时,您可能还想使用日期过滤器。例如,您可以使用:

{{ car_return_date|date:"j N Y" }}

答案 2 :(得分:0)

我建议将date_of_rent更改为last_date_of_rent,添加30天。然后,将last_date_of_rent保存到模型中。因此,您可以直接在模板中使用last_date_of_rent。此外,使用内置模板过滤器timeuntil将返回所需的内容。 -

{{ car.last_date_of_rent|timeuntil }}

文档: https://docs.djangoproject.com/en/1.11/ref/templates/builtins/#timeuntil