gpt4 book ai didi

python - 类型错误 : unsupported operand type(s) for -: 'datetime.time' and 'datetime.time'

转载 作者:太空狗 更新时间:2023-10-29 20:25:25 24 4
gpt4 key购买 nike

我的模型.py:

class Attendancename(models.Model):
teacher_name = models.ForeignKey(Teachername, default='Ram')
date = models.DateField('Date', default=datetime.datetime.today)
intime = models.TimeField('IN-TIME', auto_now=True)
outtime = models.TimeField('OUT-TIME', auto_now=True)

def hours_conversion(self):
startdelta = datetime.timedelta(hours=self.intime.hours, minutes=self.intime.minutes, seconds=self.intime.seconds)
enddelta = datetime.timedelta(hours=self.outtime.hours, minutes=self.outtime.minutes, seconds=self.outtime.seconds)
return (enddelta-startdelta).seconds/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):
intime = forms.TimeField(input_formats=('%H:%M',))
outtime = forms.TimeField(input_formats=('%H:%M',))
teacher_name = forms.ModelChoiceField(queryset=Teachername.objects.all())
class Meta:
model = Attendancename
fields = ('teacher_name', 'date', 'intime', 'outtime',)

实际上,我正在尝试根据我的 models.py 文件中的 'intime''outtime' 的差异来计算总小时数,但它超出了 erroe .我想我在做语法错误。谁能告诉我这样做的正确语法或方法是什么?任何人请建议我如何解决它?

最佳答案

这是因为你不能减去 datetime.time来自datetime.time .将它们转换为 datetime.datetime对象,它将返回 datetime.timedelta您可以使用的对象。

If you're lucky enough to be using Django 1.8 , they now have a DurationField that can be used.

否则,我建议转换 timedelta转换为秒或浮点表示形式,以便您实际将其存储到数据库中。

编辑:在评论中提出了一半的答案。

例如 - 如果您想存储(整数)秒数,您可以从 TimeDelta 转换为通过使用 secs = td // timedelta(seconds=1) .

关于python - 类型错误 : unsupported operand type(s) for -: 'datetime.time' and 'datetime.time' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31156031/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com