Арифметический оператор на шаблонах Django - PullRequest
0 голосов
/ 06 мая 2018

Вот мой models.py

class HolidayListView(ListView):
    context_object_name = 'national_holidays'
    model = models.NationalHoliday

У меня есть шаблон как holiday_list.html

<td>{{ holiday.date_from }}</td>
<td>{{ holiday.date_to }}</td>
<td>{{ holiday.date_to - holiday.date_from }}</td>

как заставить <td>{{ holiday.date_to - holiday.date_from }}</td> работать, я должен делать с HolidayListView? ...

или

может прямо на моих шаблонах? ...

спасибо!

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

Вы можете использовать пользовательский шаблонный фильтр, но в целом Django рекомендует выполнять такие вычисления на уровне представления или модели, поэтому шаблоны Django обеспечивают меньшую гибкость в отношении разрешенных операций.

Вот как вы могли бы это реализовать:

Модель:

class NationalHoliday(models.Model):
    # Model attributes...

    @property
    def length_days(self):
        return (self.date_to - self.date_from).days

Шаблон:

<td>{{ holiday.date_from }}</td>
<td>{{ holiday.date_to }}</td>
<td>{{ holiday.length_days }}</td>

Вопрос по теме: Как сделать математику в шаблоне Django?

0 голосов
/ 06 мая 2018

вы можете сделать это с помощью пользовательских шаблонов тегов и фильтров

from django import template
register = template.Library()

@register.filter
def substract_date(date_to,date_from):
    return (date_to - date_from).days

HTML будет

<td>{{ holiday.date_to|substract_date:holiday.date_from }}</td>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...