MultiValueDictKeyError "iSortingCols"
Posted
技术标签:
【中文标题】MultiValueDictKeyError "iSortingCols"【英文标题】: 【发布时间】:2014-02-01 13:11:36 【问题描述】:我正在向 django 应用程序添加一个 ajax 加载的表,当我使用检查元素查看表未加载的原因时,我看到了 MultiValueDictKeyError。
当我用谷歌搜索 MultiValueDictKeyError 时,所有结果似乎都是“在 Y 中找不到键 X”的形式,但我得到的只是“iSortingCols”。此外,提供的回溯不涉及我的任何文件,只是来自各种 python 库的文件。
追溯:
/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs) ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/views/generic/base.py in view
return self.dispatch(request, *args, **kwargs) ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/views/generic/base.py in dispatch
return handler(request, *args, **kwargs) ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/eztables/views.py in get
return self.process_dt_response(request.GET) ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/eztables/views.py in process_dt_response
self.form = DatatablesForm(data) ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/eztables/forms.py in __init__
for idx in xrange(int(self.data['iSortingCols'])): ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/utils/datastructures.py in __getitem__
raise MultiValueDictKeyError(repr(key)) ...
▶ Local vars
获取:
mDataProp_8
u'name'
mDataProp_9
u'name'
mDataProp_4
u'name'
mDataProp_5
u'name'
mDataProp_6
u'name'
mDataProp_7
u'name'
mDataProp_0
u'name'
sEcho
u'1'
iDisplayStart
u'0'
mDataProp_1
u'name'
mDataProp_10
u'name'
mDataProp_2
u'name'
sColumns
u''
iColumns
u'11'
mDataProp_3
u'name'
_
u'1389632300296'
iDisplayLength
u'-1'
我对出现错误并不感到完全惊讶,因为我对整个数据表设置并不十分熟悉,但我不确定这个错误来自哪里。
有谁知道可能导致此错误的原因是什么?
【问题讨论】:
请务必发布回溯,即使它不涉及您的任何文件 @sk1p 添加了回溯 看起来您正在使用 DataTables 框架?如果是这样,您需要确保正确读取 GET(或 POST)参数。发布有问题的代码的 sn-p,这将有更多帮助。 @themanatuf 是的,我是。哪个部分将有助于显示?有问题的 JS? @StephenTG 很高兴看到在您发出 AJAX 请求时调用了 Python/Django 函数。 【参考方案1】:django-eztables expects a parameter iSortingCols
,这是要排序的列数。如果您没有对任何内容进行排序,请尝试从您的 JS 代码中提交 0
。
【讨论】:
您的意思是在我在 JS 中创建的数据表对象的选项列表中添加类似"iSortingCols": 0,
的内容吗?
我的意思是:生成 ajax 请求的任何东西都需要发送 "iSortingCols": 0
以使 DatatablesForm
工作。 datatables documentation 说它会发送这个值,但也许只有在定义了任何排序列时才会发送?
将 bSort 设置回 true 现在给了我一个不同的错误,所以看起来这就是导致这个错误的原因
如果将 bSort
设置为 false 会导致此错误,您可能在 eztables 中发现了错误。考虑submitting it to the appropriate issue tracker
提交了错误。我想我暂时将表格保留为可排序的,并不是说这样做实际上很有用。感谢您帮助追踪此事。以上是关于MultiValueDictKeyError "iSortingCols"的主要内容,如果未能解决你的问题,请参考以下文章
MultiValueDictKeyError "iSortingCols"
如何修复 django 错误 MultiValueDictKeyError
尝试接收条带挂钩时在 Django 上获取 MultiValueDictKeyError
Django 在文件上传中引发 MultiValueDictKeyError