views.py I assign values before saving the form. I used to do it the following way:
projectForm.lat = session_results['lat'] projectForm.lng = session_results['lng']
Now, since the list of variables got a bit long, I wanted to loop over
session_results with the following loop (as described by Adam here):
for k,v in session_results.iteritems(): projectForm[k] = v
But I get the error
'Project' object does not support item assignment for the loop solution. I have trouble to understand why.
Project is the model class, which I use for the ModelForm.
Thank you for your help!
The error seems clear: model objects do not support item assignment.
MyModel.objects.latest('id')['foo'] = 'bar' will throw this same error.
It’s a little confusing that your model instance is called
To reproduce your first block of code in a loop, you need to use
for k,v in session_results.iteritems(): setattr(projectForm, k, v)
Another way would be adding __getitem__, __setitem__ function
def __getitem__(self, key): return getattr(self, key)
You can use self[key] to access now.