【发布时间】:2018-10-04 02:18:17
【问题描述】:
在 api 请求中传递了负值时引发了 AssertionError:
AssertionError: Negative indexing is not supported.
File "django/core/handlers/exception.py", line 41, in inner
response = get_response(request)
File "django/core/handlers/base.py", line 249, in _legacy_get_response
response = self._get_response(request)
File "django/core/handlers/base.py", line 187, in _get_response
response = self.process_exception_by_middleware(e, request)
File "django/core/handlers/base.py", line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "newrelic/hooks/framework_django.py", line 544, in wrapper
return wrapped(*args, **kwargs)
File "api/views.py", line 1811, in lots
sale_id
File "api/views.py", line 1684, in lots_v1
datetime_now
File "api/views.py", line 1409, in get_lot_items
lots = paginator.page(page)
File "django/core/paginator.py", line 62, in page
return self._get_page(self.object_list[bottom:top], number, self)
File "django/db/models/query.py", line 269, in __getitem__
"Negative indexing is not supported."
这很可能导致向用户显示“无限旋转轮”,因为由于后端错误,请求从未完成。
我需要捕获并处理这些不正确的 url 参数值。
下面是分页器的定义: `def get_lot_items( 很多, 页, 页面长度, 货币字典, iClient没有, 销售完成, 类别, 销售状态, 认证, 约会时间 ): # 从 db 查询集中创建很多项
# paginate the lots
paginator = Paginator(lots, page_length)
try:
lots = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
lots = paginator.page(1)
except EmptyPage:
# If page is out of range, deliver last page of results.
lots = paginator.page(paginator.num_pages)
items = []
flagged_items_collection = {}
if iClientNo:
flagged_items_collection = get_flagged_items_collection2(
iClientNo,
lot_ids=[_lot.iSaleLotNoUnique for _lot in lots]
)`
还有page_length定义为:
page_length = request.GET.get('length', None)
try:
page_length = int(page_length)
except (ValueError, TypeError):
page_length = None
PAGE_LENGTH_DEFAULT = {'grid': 36, 'list': 10, 'results': 90}
if not page_length:
try:
page_length = PAGE_LENGTH_DEFAULT[category]
status = 200
msg = 'Everything is ok'
except ValueError as e:
pass`
【问题讨论】:
-
是的,您需要完全按照您的描述进行操作。你的“问题”有什么问题吗?
-
您正在显示回溯,您可以发布您的代码吗?
标签: python django python-2.7 django-models