Ok, now I am really confused.
# Handle FK fields
elif field.rel and isinstance(field.rel, models.ManyToOneRel):
if field_value is not None:
import pdb; pdb.set_trace()
if hasattr(field.rel.to._default_manager, 'get_by_natural_key'):
if hasattr(field_value, '__iter__'):
obj = field.rel.to._default_manager.db_manager(db).get_by_natural_key(*field_value)
value = getattr(obj, field.rel.field_name)
# If this is a natural foreign key to an object that
# has a FK/O2O as the foreign key, use the FK value
if field.rel.to._meta.pk.rel:
else:
value = field.rel.to._meta.get_field(field.rel.field_name).to_python(field_value)
data[field.attname] = value
else:
data[field.attname] = field.rel.to._meta.get_field(field.rel.field_name).to_python(field_value)
else:
data[field.attname] = None
<django.db.models.fields.related.ForeignKey: event_type>
(Pdb) p hasattr(field.rel.to._default_manager, 'get_by_natural_key')
> /home/bob/.virtualenvs/vn2/lib/python2.6/site-packages/django/core/serializers/python.py(109)Deserializer()
-> if hasattr(field_value, '__iter__'):
(Pdb) p hasattr(field_value, '__iter__')
(Pdb) p type(field_value)
> /home/bob/.virtualenvs/vn2/lib/python2.6/site-packages/django/core/serializers/python.py(117)Deserializer()
-> value = field.rel.to._meta.get_field(field.rel.field_name).to_python(field_value)
ValidationError: Validati...teger."])
> /home/bob/.virtualenvs/vn2/lib/python2.6/site-packages/django/core/serializers/python.py(117)Deserializer()
-> value = field.rel.to._meta.get_field(field.rel.field_name).to_python(field_value)
In [15]: field_value = u'Cash Contribution'
In [16]: field_value.__iter__()
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
/home/bob/.virtualenvs/vn2/valuenetwork/<ipython console> in <module>()
AttributeError: 'unicode' object has no attribute '__iter__'