【发布时间】:2018-09-25 19:33:43
【问题描述】:
我正在尝试比较我的 html 模板中的日期。如果当前日期介于开始日期和结束日期之间,它将显示可用。但是,即使我的日期介于开始日期和结束日期之间,我当前的代码也只会显示 Not available。
now 变量由 dateTime.now() 生成并传递给 html。日期格式为April 16, 2018, 1:44 p.m.,使用Django的DateTimeField
<tbody>
{% for key in keys%}
<tr>
<th scope="row">{{key.name}}</th>
<td>{{key.lock}}</td>
<td>{{key.start_date}}</td>
<td>{{key.end_date}}</td>
{% if now >= key.start_date and now <= key.end_date %}
<td>Available</td>
{% else %}
<td>Not Available</td>
{% endif %}
<td><button type="button" class="btn btn-primary btn-rounded btn-sm my-0">Unlock</button></td>
</tr>
{% endfor %}
</tbody>
views.py 中的代码
keys = Key.objects.filter(user=request.user)
dateTimeNow = datetime.now()
args = {'keys': keys, 'now': dateTimeNow}
return render(request, self.template_name, args)
【问题讨论】:
-
使用自定义模板标签
-
您可以将
is_available方法添加到您进行逻辑检查的关键模型中。这将更容易调试和优化 -
@RamkishoreM 所以每次我对所有数据进行数据库获取时,我都必须更新该字段?
-
不需要字段。只是一个方法
def is_available(self):。这使得它也可以重复使用。将这样的逻辑保留在模型中是个好主意