python - 对象不支持项分配错误

原文 标签 python django loops dictionary

在我的 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/

相关文章:

python - 在 Python 中从 1 循环到无穷大

python - 语法错误: print doesn't work in eval() [duplicate]

python - 如何计算我在滚动1之前滚动0的次数?

mysql - 使用pip在Mac OS X 10.12上安装MySQLdb错误

java - 如何创建一个检查这些值的循环?

mysql - MySQL不接受循环结束指令

python - "decoder jpeg not available"with Pillow on AWS Elastic Beanstalk

python - 创建新的类,以现有名称为子类

python - 通过本地主机访问django应用程序时无法通过IP地址访问它

python - Django原子的初始值增加