我的模型.py:
class Attendancename(models.Model):
teacher_name = models.ForeignKey(Teachername)
date = models.DateField('Date')
intime = models.TimeField('IN-TIME')
outtime = models.TimeField('OUT-TIME')
def hours_conversion(self):
tdelta = (datetime.datetime.combine(datetime.date.today(),outtime) - datetime.datetime.combine(datetime.date.today(),intime))
return (tdelta).second/3600
def __str__(self):
return "%s" %self.teacher_name
我的观点.py:
def add_atten(request):
if request.method == 'POST':
form = AttendancenameForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect(reverse('student:listatten'))
else:
print(form.errors)
else:
form = AttendancenameForm()
return render(request, 'add_atten.html', {'form': form},)
我的表格.py:
class AttendancenameForm(ModelForm):
teacher_name = forms.ModelChoiceField(queryset=Teachername.objects.all())
class Meta:
model = Attendancename
fields = ('teacher_name', 'date', 'intime', 'outtime',)
我想从'intime'
和'outtime'
属性计算时间差。但我遇到了一个意外的错误:'TypeError: unsupported operand type(s) for -: 'datetime.time' and 'datetime.time''
。请帮我让它工作吗?
我不是django方面的专家,但似乎intime
和outtime
属于datetime.time
类型,您不能使用-
运算符来减去它们,而是尝试使用以下-
import datetime
outtime = datetime.time(10,0)
intime = datetime.time(5,0)
tdelta = (datetime.datetime.combine(datetime.date.today(),outtime) - datetime.datetime.combine(datetime.date.today(),intime))
print(tdelta.seconds/3600)