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