我希望获得今天和模型字段 end_date 之间的天数。
我今天在我看来定义如下所示。
然后,我将使用天数来检查它是否小于或等于50,这将为<td></td>
元素添加一个类
我的模板
{% for instance in queryset %}
<tr>
<td>{{forloop.counter}}</td>
<td>{{instance.empnumber}}</td>
<td>{{instance.name}}</td>
<td>{{instance.be}}</td>
<td>{{instance.status}}</td>
{% if (today - instance.end_date) <= 50 %}
<td class="highlight">{{instance.start_date}}</td>
<td class="highlight">{{instance.end_date}} : {{ instance.end_date|timeuntil:today }}</td>
{% else %}
<td>{{instance.status_start_date}}</td>
<td>{{instance.status_end_date}}</td>
{% endif %}
</tr>
{% endfor %}
我的观点
if request.user.is_authenticated():
queryset = Employee.objects.all().order_by('-last_updated')
today = date.today()
context = {
"queryset": queryset,
"today": today,
}
答案 0 :(得分:3)
我会在Employee对象上创建一个方法。
class Employee(models.Model):
...
def ends_within_50_days(self):
return (date.today() - self.end_date).days <= 50
现在你可以这样做:
{% if instance.ends_within_50_days %}
答案 1 :(得分:0)
正如上一个答案中所建议的,您可以在模型类中创建一个方法,或者我将使用属性。
假设你有类似的东西:
new
在您的模板中,您可以检查它是否少于50天:
from datetime import date
from django.db import models
class Employee(models.Model):
end_date = models.DateField()
# ... rest ...
@property
def age_in_days(self):
today = date.today()
result = end_date - today
return result.days
属性{% if instance.age_in_days <= 50 %}
将返回今天与age_in_days
之间的天数差异作为整数。这样可以为您提供更大的灵活性,以防您不仅要检查它是否少于50天。最终该要求可能会改变。然后,您可以重用该属性而无需重构模型。
您仍然可以在模型类中定义一个方法来检查实例是否在过去50天内结束:
end_date