python – TypeError:不支持的操作数类型 – :’datetime.time’和’datetime.time’
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – TypeError:不支持的操作数类型 – :’datetime.time’和’datetime.time’,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1882字,纯文字阅读大概需要3分钟。
内容图文
![python – TypeError:不支持的操作数类型 – :’datetime.time’和’datetime.time’](/upload/InfoBanner/zyjiaocheng/705/8012b47ae99245bd91632a8bc62e3996.jpg)
我的models.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
我的views.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},)
我的forms.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转换为秒或浮点表示,以便您可以将它实际存储到数据库中.
编辑:在评论中拉了半个答案.
例如 – 如果要存储(整数)秒数,可以使用secs = td // timedelta(seconds = 1)从TimeDelta转换.
内容总结
以上是互联网集市为您收集整理的python – TypeError:不支持的操作数类型 – :’datetime.time’和’datetime.time’全部内容,希望文章能够帮你解决python – TypeError:不支持的操作数类型 – :’datetime.time’和’datetime.time’所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。