我如何使用 django 模板根据一天中的时间删除页面的内容?
我正在创建一个在线食品配送网站。交货单按时间划分。
例如,对于晚上 7 点的交货下降,我希望页面在当天下午 6 点之前正常显示。然后在下午 6 点 01 分,我希望页面显示“此交货时间不可用”之类的内容
我如何使用 django 模板根据一天中的时间删除页面的内容?
我正在创建一个在线食品配送网站。交货单按时间划分。
例如,对于晚上 7 点的交货下降,我希望页面在当天下午 6 点之前正常显示。然后在下午 6 点 01 分,我希望页面显示“此交货时间不可用”之类的内容
老实说,如果你想防止不需要的行为,你不应该依赖模板逻辑。
您可以创建两个变量,例如
from django.conf import settings
TIME_OPEN = getattr(settings, 'TIME_OPEN', datetime.now().replace(hour=10, minute=30, second=0, microsecond=0).time())
TIME_CLOSED = getattr(settings, 'TIME_CLOSED', datetime.now().replace(hour=21, minute=30, second=0, microsecond=0).time())
在您的 url 模式中,您可以添加如下内容:
if TIME_OPEN < datetime.now().time() < TIME_CLOSED:
urlpatterns += patterns('shop.customers.views',
(r'^checkout/$', 'checkout'),
)
根据您的新变量,您可以添加一个 context_processor,为 UI 逻辑的每个模板提供上下文变量,例如{'shop_open': True}
.
请注意,这些示例依赖于服务器时间,因此您必须进行检查,因为它可能与您的本地计算机不同。另一种方法可能是创建一个装饰器,它可以包裹在需要特定时间的视图周围。
所以,只是为了确保;不要依赖模板逻辑,保护你的视图