django - TypeError: 不支持的操作数类型 -: 'DateTimeField' 和 'DateTimeField'
问题描述
我在 Django 2.1 类中有以下等式:
import datetime
class FormBacktest(forms.Form):
dateStart= forms.DateTimeField(label="Date Start", widget=DateTimePickerInput()
dateEnd= forms.DateTimeField(label="Date End", widget=DateTimePickerInput()
timeInMin = int((dateEnd-dateStart).total_seconds()/60)
我从文档中知道DateTimeField 是一个 datetime.datetime 实例,所以应该克服这个问题。
有什么建议吗?
解决方案
嗯,DateTimeField
是一个表单域,而不是一个datetime
实例。但是,当您从该字段获取输入时,您将获得一个datetime
对象。您可以从 访问其值cleaned_data
,例如:
# in view
def someview(request):
form = FormBacktest(request.POST or None)
if request.method == "POST": # its a post request
if form.is_valid():
date_start = form.cleaned_data.get('dateStart')
date_end = form.cleaned_data.get('dateEnd')
difference= date_end - date_start # time delta object
请查看有关如何从表单获取数据的更多详细信息的文档。另外,请timeInMin
从表格中删除。
推荐阅读
- android - 蓝牙与 DisplayOnly 配对不出现密码框
- html - Chrome 剪切长页面
- node.js - NodeJS 注册 - 用户名区分大小写(唯一字段)
- intellij-idea - 无法解析另一个模块中的类的符号
- python - Google Groups Settings API 400“无效值”错误
- docker - docker 容器是如何构建的?
- c++ - 为什么数组中对象的析构函数在被另一个对象替换时不被调用?
- php - PHP - 获取不大于下一个数组值的数组值
- c# - WPF子菜单覆盖而不是展开
- groovy - 使用 groovy 脚本的 Jenkins 管道:执行 sh 命令时出错