models.py
from django.db import models
class Leave(models.Model):
...
from_date = models.DateField()
to_date = models.DateField()
def __str__(self):
return self.name
以上是我的model.py中定义的两个日期字段。
views.py
from django.shortcuts import render, render_to_response
from .forms import LeaveRequestForm
from django.shortcuts import
from .models import Leave
...
def get_days(request):
data = Leave.objects.all()
for x in data :
if x.employee_ID == request.user.username:
d1 = x.from_date
d2 = x.to_date
days = d2 - d1
return render(request,"status.html", days)
上面的代码是我对获取天数的尝试。
在这里,我的模型是Leave
,而我的表格是LeaveRequestForm
。在我的HTML文件中以获取使用{{ from_date|timesince:to_date }}
的天数,此方法有效,但我想从数字中减去此天数。
base:我正在从事一个休假管理项目。如果用户要求请假5天,并且他有资格请假10天。他的平衡叶应该等于5。
如何通过视图实现这一目标?
答案 0 :(得分:1)
在模型中将property
用作
from django.db import models
class Leave(models.Model):
from_date = models.DateField()
to_date = models.DateField()
def __str__(self):
return self.name
@property
def date_diff(self):
return (self.to_date - self.from_date).days
,并且可以在模板中将其用作 {{ leave_object.date_diff }}
答案 1 :(得分:0)
在您的情况下,d2 - d1
是一个timedelta对象,它具有整数属性days
。
因此,您需要在python代码中编写days = (d2 - d1).days
,然后您会得到一个int
,可以从所需的任何内容中减去。