app/django/core/serializers/python.py
changeset 323 ff1a9aa48cfd
parent 54 03e267d67478
equal deleted inserted replaced
322:6641e941ef1e 323:ff1a9aa48cfd
    47                 # Related to remote object via other field
    47                 # Related to remote object via other field
    48                 related = getattr(related, field.rel.field_name)
    48                 related = getattr(related, field.rel.field_name)
    49         self._current[field.name] = smart_unicode(related, strings_only=True)
    49         self._current[field.name] = smart_unicode(related, strings_only=True)
    50 
    50 
    51     def handle_m2m_field(self, obj, field):
    51     def handle_m2m_field(self, obj, field):
    52         self._current[field.name] = [smart_unicode(related._get_pk_val(), strings_only=True)
    52         if field.creates_table:
    53                            for related in getattr(obj, field.name).iterator()]
    53             self._current[field.name] = [smart_unicode(related._get_pk_val(), strings_only=True)
       
    54                                for related in getattr(obj, field.name).iterator()]
    54 
    55 
    55     def getvalue(self):
    56     def getvalue(self):
    56         return self.objects
    57         return self.objects
    57 
    58 
    58 def Deserializer(object_list, **options):
    59 def Deserializer(object_list, **options):
    81                 m2m_convert = field.rel.to._meta.pk.to_python
    82                 m2m_convert = field.rel.to._meta.pk.to_python
    82                 m2m_data[field.name] = [m2m_convert(smart_unicode(pk)) for pk in field_value]
    83                 m2m_data[field.name] = [m2m_convert(smart_unicode(pk)) for pk in field_value]
    83 
    84 
    84             # Handle FK fields
    85             # Handle FK fields
    85             elif field.rel and isinstance(field.rel, models.ManyToOneRel):
    86             elif field.rel and isinstance(field.rel, models.ManyToOneRel):
    86                 if field_value:
    87                 if field_value is not None:
    87                     data[field.attname] = field.rel.to._meta.get_field(field.rel.field_name).to_python(field_value)
    88                     data[field.attname] = field.rel.to._meta.get_field(field.rel.field_name).to_python(field_value)
    88                 else:
    89                 else:
    89                     data[field.attname] = None
    90                     data[field.attname] = None
    90 
    91 
    91             # Handle all other fields
    92             # Handle all other fields