diff -r 6641e941ef1e -r ff1a9aa48cfd app/django/core/serializers/python.py --- a/app/django/core/serializers/python.py Tue Oct 14 12:36:55 2008 +0000 +++ b/app/django/core/serializers/python.py Tue Oct 14 16:00:59 2008 +0000 @@ -49,8 +49,9 @@ self._current[field.name] = smart_unicode(related, strings_only=True) def handle_m2m_field(self, obj, field): - self._current[field.name] = [smart_unicode(related._get_pk_val(), strings_only=True) - for related in getattr(obj, field.name).iterator()] + if field.creates_table: + self._current[field.name] = [smart_unicode(related._get_pk_val(), strings_only=True) + for related in getattr(obj, field.name).iterator()] def getvalue(self): return self.objects @@ -83,7 +84,7 @@ # Handle FK fields elif field.rel and isinstance(field.rel, models.ManyToOneRel): - if field_value: + if field_value is not None: data[field.attname] = field.rel.to._meta.get_field(field.rel.field_name).to_python(field_value) else: data[field.attname] = None