python - TypeError:timedelta 秒组件不支持的类型:列表
问题描述
我正在通过https://github.com/jbittel/django-mama-cas设置 CAS(中央身份验证服务器),并在尝试创建票证时出错,原因是
标准错误:TypeError:timedelta 秒组件不支持的类型:列表
我已经搜索了如何将 django 模型对象值转换为 timedelta() 函数的整数,但我自己没有运气。
def create_ticket(self, ticket=None, **kwargs):
"""
Create a new ``Ticket``. Additional arguments are passed to the
``create()`` function. Return the newly created ``Ticket``.
"""
if not ticket:
ticket = self.create_ticket_str()
if 'service' in kwargs:
kwargs['service'] = clean_service_url(kwargs['service'])
if 'expires' not in kwargs:
expires = now() + timedelta(seconds=self.model.TICKET_EXPIRE)
kwargs['expires'] = expires
t = self.create(ticket=ticket, **kwargs)
logger.debug("Created %s %s" % (t.name, t.ticket))
return t
预期结果:CAS 让我登录并将我重定向回启用 CAS 的应用程序。
实际结果:内部服务器错误 (500)
App 29175 stderr: [ pid=29175, time=2019-10-03 19:08:25,610 ]: Internal Server Error: /login
App 29175 stderr: Traceback (most recent call last):
App 29175 stderr: File "/opt/rh/httpd24/root/var/www/public/cas_container/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner
App 29175 stderr: response = get_response(request)
App 29175 stderr: File "/opt/rh/httpd24/root/var/www/public/cas_container/lib/python3.6/site-packages/django/core/handlers/base.py", line 115, in _get_response
App 29175 stderr: response = self.process_exception_by_middleware(e, request)
App 29175 stderr: File "/opt/rh/httpd24/root/var/www/public/cas_container/lib/python3.6/site-packages/django/core/handlers/base.py", line 113, in _get_response
App 29175 stderr: response = wrapped_callback(request, *callback_args, **callback_kwargs)
App 29175 stderr: File "/opt/rh/httpd24/root/var/www/public/cas_container/lib/python3.6/site-packages/django/views/generic/base.py", line 71, in view
App 29175 stderr: return self.dispatch(request, *args, **kwargs)
App 29175 stderr: File "/opt/rh/httpd24/root/var/www/public/cas_container/lib/python3.6/site-packages/django/utils/decorators.py", line 45, in _wrapper
App 29175 stderr: return bound_method(*args, **kwargs)
App 29175 stderr: File "/opt/rh/httpd24/root/var/www/public/cas_container/lib/python3.6/site-packages/django/utils/decorators.py", line 142, in _wrapped_view
App 29175 stderr: response = view_func(request, *args, **kwargs)
App 29175 stderr: File "/opt/rh/httpd24/root/var/www/public/cas_container/lib/python3.6/site-packages/mama_cas/mixins.py", line 28, in dispatch
App 29175 stderr: return super(CsrfProtectMixin, self).dispatch(request, *args, **kwargs)
App 29175 stderr: File "/opt/rh/httpd24/root/var/www/public/cas_container/lib/python3.6/site-packages/django/utils/decorators.py", line 45, in _wrapper
App 29175 stderr: return bound_method(*args, **kwargs)
App 29175 stderr: File "/opt/rh/httpd24/root/var/www/public/cas_container/lib/python3.6/site-packages/django/views/decorators/cache.py", line 44, in _wrapped_view_func
App 29175 stderr: response = view_func(request, *args, **kwargs)
App 29175 stderr: File "/opt/rh/httpd24/root/var/www/public/cas_container/lib/python3.6/site-packages/mama_cas/mixins.py", line 13, in dispatch
App 29175 stderr: return super(NeverCacheMixin, self).dispatch(request, *args, **kwargs)
App 29175 stderr: File "/opt/rh/httpd24/root/var/www/public/cas_container/lib/python3.6/site-packages/django/views/generic/base.py", line 97, in dispatch
App 29175 stderr: return handler(request, *args, **kwargs)
App 29175 stderr: File "/opt/rh/httpd24/root/var/www/public/cas_container/lib/python3.6/site-packages/django/views/generic/edit.py", line 142, in post
App 29175 stderr: return self.form_valid(form)
App 29175 stderr: File "/opt/rh/httpd24/root/var/www/public/cas_container/lib/python3.6/site-packages/mama_cas/views.py", line 148, in form_valid
App 29175 stderr: st = ServiceTicket.objects.create_ticket(service=service, user=self.request.user, primary=True)
App 29175 stderr: File "/opt/rh/httpd24/root/var/www/public/cas_container/lib/python3.6/site-packages/mama_cas/models.py", line 52, in create_ticket
App 29175 stderr: expires = now() + timedelta(seconds=self.model.TICKET_EXPIRE)
App 29175 stderr: TypeError: unsupported type for timedelta seconds component: list
解决方案
推荐阅读
- c# - 如何使用 c# 针对 Azure AD 验证用户密码
- regex - excel VBA for Mac 中缺少正则表达式库
- sql-server - 使用滞后函数获取销售变化返回 0
- c# - 如何在针对 Couchbase 的全文搜索查询的响应中获取文档?
- testing - 在对算法进行基准测试时,我是否需要担心硬件?
- r - 在 r 中过滤分组数据
- openshift - 如何将 docker 文件迁移到 okd/openshift 模板?
- python - 将 pandas 列转换为特定位置的列表
- powershell - Powershell:哈希表的联合列表 - 采用最新的碰撞
- java - Java Mockito 参数匹配器的无效使用