我使用的是5 - 6个自定义模板标签。
它们中的每一个都类似于以下内容:
@register.filter(name = 'time_left')
def time_left(obj):
if not obj:
return -1
if not obj.has_offer_expired():
return obj.time_left()
return None
我在我的models.py
中有这个:
def has_offer_expired(self):
return self.end_time <= timezone.now()
def time_left(self):
return int((self.end_time - timezone.now()).total_seconds())
每当使用模板标签{{ offer | time_left }}
时,它会导致数据库查询吗?或者,offer
被传递给模板标记函数并使用其属性而不会导致任何额外的数据库查询?
在幕后工作模板标签的详细解释将非常感谢!
谢谢。
编辑:请在投票前添加一个理由!