neu*_*rix 47 python django dictionary loops
在我views.py保存表单之前我分配值.我过去常常这样做:
projectForm.lat = session_results['lat']
projectForm.lng = session_results['lng']
Run Code Online (Sandbox Code Playgroud)
现在,由于变量列表中有一点长,我想遍历session_results与下面的循环(如亚当描述这里):
for k,v in session_results.iteritems():
projectForm[k] = v
Run Code Online (Sandbox Code Playgroud)
但是我得到'Project' object does not support item assignment了循环解决方案的错误.我很难理解为什么.Project是模型类,我用于ModelForm.
谢谢您的帮助!
Yuj*_*ita 66
错误似乎很明显:模型对象不支持项目分配.
MyModel.objects.latest('id')['foo'] = 'bar'会抛出同样的错误.
你的模型实例被调用有点令人困惑projectForm......
要在循环中重现第一个代码块,您需要使用 setattr
for k,v in session_results.iteritems():
setattr(projectForm, k, v)
Run Code Online (Sandbox Code Playgroud)
小智 20
另一种方法是添加__getitem __,__ setitem__函数
def __getitem__(self, key):
return getattr(self, key)
Run Code Online (Sandbox Code Playgroud)
您现在可以使用自[密钥]进行访问.
| 归档时间: |
|
| 查看次数: |
82833 次 |
| 最近记录: |