1

私はこのようなモデルを持っています:

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 %}

4

1 に答える 1

2

First, you need to choose what type of template tag you are writing. It is probably easiest to use an assignment tag. You also need to register the template tag so that it's available in your template:

Either below your function:

def get_remaining_day(user):
    ...
register.assignment_tag('get_remaining_day', get_remaining_day)

or as a decorator:

@register.assignment_tag(name='get_remaining_day')
def get_remaining_day(user):
    ...

Now you can call it from your template as:

{% get_remaining_day as day %}
{{ day }}
于 2013-10-02T07:58:46.580 に答える