This loop may be a clearer if you first split the model and field values and then set the attributes:
```
tree_fields = {}
plot_fields = {}
for (model_and_field, value) in request_dict.iteritems():
    model, field = split_model_or_raise(model_and_field)
        if model == 'plot':
            plot_fields[field] = value
        elif model == 'tree':
            tree_fields[field] = value
        else:
            raise Exception('Malformed request - invalid model %s' % model)

if len(tree_fields):
   tree = get_tree()

for (field, value) in plot_fields.iteritems():
    set_attr_on_model(plot, field, value)

for (field, value) in tree_fields.iteritems():
    set_attr_on_model(tree, field, value)
```