对象不支持项分配

2024-05-12 10:16:20 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的views.py中,我在保存表单之前分配值。我以前是这样做的:

projectForm.lat = session_results['lat']
projectForm.lng = session_results['lng']

现在,由于变量列表有点长,我想用下面的循环(如Adamhere所述)循环session_results

for k,v in session_results.iteritems():
    projectForm[k] = v

但是我得到了循环解的错误'Project' object does not support item assignment。我很难理解为什么。Project是model类,我将其用于ModelForm。

谢谢你的帮助!


Tags: inpyproject表单列表forsession错误
2条回答

错误似乎很明显:模型对象不支持项分配。 MyModel.objects.latest('id')['foo'] = 'bar'将引发相同的错误。

模型实例被称为projectForm,这有点让人困惑。。。

要在循环中重新生成第一块代码,需要使用setattr

for k,v in session_results.iteritems():
    setattr(projectForm, k, v)

另一种方法是添加函数

def __getitem__(self, key):
    return getattr(self, key)

现在可以使用self[键]访问。

相关问题 更多 >