Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在对象中查找平均日期时间?_Python_Django - Fatal编程技术网

Python 如何在对象中查找平均日期时间?

Python 如何在对象中查找平均日期时间?,python,django,Python,Django,我创建了一个审批系统。我有一个ApprovalProcess模型。此模型具有结束日期和开始日期。结束日期-开始日期是持续时间。我有几个ApprovalProcess模型,我想找出所有ApprovalProcess对象的总平均持续时间。我找不到结束日期和开始日期之间的差异。它给出了一个错误: /approval/logs处的TypeError不支持的操作数类型为-: “非类型”和“日期时间.日期时间” 我怎么做 models.py views.py 回溯 试试这个 更新问题 if approval

我创建了一个审批系统。我有一个ApprovalProcess模型。此模型具有结束日期和开始日期。结束日期-开始日期是持续时间。我有几个ApprovalProcess模型,我想找出所有ApprovalProcess对象的总平均持续时间。我找不到结束日期和开始日期之间的差异。它给出了一个错误:

/approval/logs处的TypeError不支持的操作数类型为-: “非类型”和“日期时间.日期时间”

我怎么做

models.py

views.py

回溯

试试这个

更新问题

if approval_object.end_date and approval_object.begin_date:
    delta = abs((approval_object.end_date - approval_object.begin_date).days)

#duration = duration + (review.end_date - review.begin_date).days
试试这个

更新问题

if approval_object.end_date and approval_object.begin_date:
    delta = abs((approval_object.end_date - approval_object.begin_date).days)

#duration = duration + (review.end_date - review.begin_date).days

当查询中的“结束日期”为“无”时,可以进行筛选:


approval\u list=ApprovalProcess.objects.filteruser\u id=request.user.excludeend\u date=None

当查询中的end\u date为None时,可以进行筛选:


approval\u list=ApprovalProcess.objects.filteruser\u id=request.user.excludeend\u date=None

错误提到运算符:+而不是-用于计算差异。你能检查错误中提到的行号吗?你能发布完整的错误跟踪吗back@c.grey我补充道,有一个ApprovalProcess实例的结束日期为空。这是因为approval\u object.end\u date的计算结果为NoneError提到了运算符:+而不是-用于计算差值。你能检查错误中提到的行号吗?你能发布完整的错误跟踪吗back@c.grey我补充道,有一个ApprovalProcess实例的结束日期为空。这是因为approval\u object.end\u date的计算结果为None我粘贴了错误的回溯,我编辑了它你可以再看一次吗请,我很抱歉我粘贴了错误的回溯,我编辑了它你可以再看一次吗,我很抱歉
   Environment:


Request Method: GET
Request URL: http://127.0.0.1:8000/approval/logs

Django Version: 3.1.4
Python Version: 3.8.8
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.humanize',
 'register',
 'customer',
 'financial_analysis',
 'ocr',
 'core',
 'approvals',
 'crispy_forms',
 'ckeditor',
 'rest_framework',
 'requests',
 'ckeditor_uploader',
 'django_filters',
 'activity_log',
 'djmoney',
 'djmoney.contrib.exchange']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']



Traceback (most recent call last):
  File "C:\Users\USER\OneDrive\Documents\GitHub\otc\myvenv\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
    response = get_response(request)
  File "C:\Users\USER\OneDrive\Documents\GitHub\otc\myvenv\lib\site-packages\django\core\handlers\base.py", line 179, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\USER\OneDrive\Documents\GitHub\otc\approvals\views.py", line 501, in log_records
    delta = abs((approval_object.end_date - approval_object.begin_date).days)

Exception Type: TypeError at /approval/logs
Exception Value: unsupported operand type(s) for -: 'NoneType' and 'datetime.datetime'
if approval_object.end_date and approval_object.begin_date:
    delta = abs((approval_object.end_date - approval_object.begin_date).days)

#duration = duration + (review.end_date - review.begin_date).days