我有一个这样的模型:
class WeddingDate(models.Model):
user = models.ForeignKey(User)
date = models.DateField(help_text="Date should be in 1991-07-22 format!")
用户输入他们的婚礼日期。并且,我在base.html
找到他们的婚礼剩余的日子。我正在尝试为它创建自定义模板标记。
我创建了一个名为templatetags的目录,并创建了一个名为remainingdays.py
from models import WeddingDate
from django import template
from datetime import date
register = template.Library()
def get_remaining_day(user):
date = WeddingDate.objects.get(pk=user)
current_date = date.today()
days = date.date - current_date
return days.days
现在,如何在{% get_remaining_day %}
答案 0 :(得分:2)
首先,您需要选择要编写的模板标签类型。使用assignment tag可能最简单。您还需要register the template tag,以便它可以在您的模板中使用:
低于你的功能:
def get_remaining_day(user):
...
register.assignment_tag('get_remaining_day', get_remaining_day)
或作为装饰者:
@register.assignment_tag(name='get_remaining_day')
def get_remaining_day(user):
...
现在您可以从模板中调用它:
{% get_remaining_day as day %}
{{ day }}