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"的主要内容,如果未能解决你的问题,请参考以下文章