在我的 views.py
中,我在保存表单之前分配了值。我以前是这样做的:
projectForm.lat = session_results['lat']
projectForm.lng = session_results['lng']
现在,由于变量列表有点长,我想使用以下循环遍历 session_results
(如 Adam here 所述):
for k,v in session_results.iteritems():
projectForm[k] = v
但我收到错误 'Project' object does not support item assignment
用于循环解决方案。我很难理解为什么。 Project
是模型类,我用于 ModelForm。
感谢您的帮助!
最佳答案
错误似乎很明显:模型对象不支持项目分配。
MyModel.objects.latest('id')['foo'] = 'bar'
会抛出同样的错误。
您的模型实例被称为 projectForm
...
要在循环中重现您的第一个代码块,您需要使用 setattr
for k,v in session_results.iteritems():
setattr(projectForm, k, v)
关于python - 对象不支持项目分配错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8542343/