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

MultiValueDictKeyError at / update'date'

如何在Formset POST上调试Django MultiValueDictKeyError