django模板上的算术运算符

django模板上的算术运算符,django,django-templates,Django,Django Templates,这里是我的models.py class HolidayListView(ListView): context_object_name = 'national_holidays' model = models.NationalHoliday 我有一个类似于holiday\u list.html的模板 <td>{{ holiday.date_from }}</td> <td>{{ holiday.date_to }}</td> &l

这里是我的
models.py

class HolidayListView(ListView):
    context_object_name = 'national_holidays'
    model = models.NationalHoliday
我有一个类似于
holiday\u list.html的模板

<td>{{ holiday.date_from }}</td>
<td>{{ holiday.date_to }}</td>
<td>{{ holiday.date_to - holiday.date_from }}</td>
{{holiday.date_from}
{{holiday.date_to}
{{holiday.date_to-holiday.date_from}
如何使{code>{holiday.date\u to-holiday.date\u from}
工作,我应该使用HolidayListView吗

可以直接在我的模板上吗

谢谢大家!

你可以用

html将是

<td>{{ holiday.date_to|substract_date:holiday.date_from }}</td>
{{holiday.date_to | substract_date:holiday.date_from}}
您可以使用

html将是

<td>{{ holiday.date_to|substract_date:holiday.date_from }}</td>
{{holiday.date_to | substract_date:holiday.date_from}}

您可以使用自定义模板过滤器,但一般来说,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>
{{holiday.date_from}
{{holiday.date_to}
{{holiday.length_days}

相关问题:

您可以使用自定义模板过滤器,但一般来说,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>
{{holiday.date_from}
{{holiday.date_to}
{{holiday.length_days}

相关问题:

在模板级别,您可以使用

对我很有用。然后,您可以执行以下操作:

<td>{{ holiday.date_to|sub:holiday.date_from }}</td>
{{holiday.date_to | sub:holiday.date_from}

正如@maxim指出的那样,这并不理想。最好的方法仍然是在视图或模型上进行。。但是它对我的需要非常有效。

在模板级别,您可以使用它

对我很有用。然后,您可以执行以下操作:

<td>{{ holiday.date_to|sub:holiday.date_from }}</td>
{{holiday.date_to | sub:holiday.date_from}

正如@maxim指出的那样,这并不理想。最好的方法仍然是在视图或模型上进行。。但是对于我的需要,它工作得非常好。

看起来很简单,如果我做了两个或更多的
属性
我需要为每个函数放置
@property
吗?是的,您需要为每个要定义为类属性的方法添加属性装饰器:。但这里属性装饰器是可选的,您也可以将其定义为常规方法-模板引擎将两者视为相同的。看起来很简单,如果我执行两个或更多的
属性
我是否需要放置
@property
每个函数?是的,您需要将属性装饰器添加到要定义为类属性的每个方法:。但在这里,属性装饰器是可选的,您也可以将其定义为常规方法-模板引擎将对两者进行相同的处理。