在我的模板中,我需要知道给定变量的“时间”是否大于另一个变量。如果它大于该行,我添加一个类。
无法找到一种方法在模板中比较它们并在视图中比较它们似乎同样复杂,因为我不确定如何循环它们,然后将该信息可靠地传递给模板以添加一个类。
有任何想法吗?
您不能使用timesince
来执行此操作,您必须使用自定义标签或在您的视图中执行此操作。
在您看来,我建议您这样做:
def someview(request):
objs = Some.object.filter()
ctx = {}
ctx['objs'] = [] # hold your objects
for i in objs:
ctx['objs'].append((i,i.date_field < someother_obj.date_field))
return render(request, 'template.html', ctx)
在您的模板中:
{% for obj,flag in objs %}
<tr><td {% if flag %}class="marked"{% endif %}>{{ obj }}</td></tr>
{% endfor %}
如果您想使用自定义标签来执行此操作,请创建一个模板来显示该行,然后创建一个包含您的比较逻辑的包含标签。