首页 > 解决方案 > 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 实例,所以应该克服这个问题。

有什么建议吗?

标签: djangopython-3.xdatetime

解决方案


嗯,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从表格中删除。


推荐阅读