我正在尝试从一个表单中保存Django数据库,在那里我不必手动指定字段名(就像我在第二个代码块中所做的那样),我尝试这样做的方式如下(第一个代码块),正如我从另一个S.O.帖子中得到的提示一样。但是,当我尝试这样做时,我得到了一个错误“dictionary update sequence element#0的长度为4;需要2”,我甚至尝试了,如下所示,只使用一个testdict字典,而不是请求.POST,但仍收到错误。。显然,字段值很好,因为它在第二个代码块中工作,所以我很困惑为什么会发生这种情况,如果有人能为我解释一下这一点,我将不胜感激。。。谢谢
这样做会导致错误:
testdict = {'name':'account_username','value':'vvvvvv'}
for name, value in testdict.iteritems():
if name != '' and name != 'top_select':
b = Twitter(**dict((name, value)))
b.save()
>>> dictionary update sequence element #0 has length 4; 2 is required
但这很好:
^{pr2}$
只要这样做:
“dict”接受一系列键、值元组,而您给它一个键,值元组。在
上面写着“。。。序列元素0的长度为4是因为testdict中的键“name”的长度为4。在
不知道你想做什么,但也许你想要这样的东西
但是要得到
^{pr2}$Twitter(account_username='vvvvvv')
的等价物,您需要这样的东西其中testdict只包含一个要发送到
Twitter()
的实体那么代码看起来更像这样
如果我错了,请纠正我。在
从第二个代码片段中,我认为
Twitter
类需要account_username
作为关键字参数。当您使用iteritems
遍历字典时,您将把name
-即字典的键作为关键字参数传递给类。这不是不对吗?字典的键是name
和value
,而不是account_username
。我相信您需要字典中的值之一作为关键字参数传递,而不是其中一个键。在相关问题 更多 >
编程相关推荐