diff options
author | Anssi Kääriäinen <anssi.kaariainen@thl.fi> | 2015-02-26 16:19:17 +0200 |
---|---|---|
committer | Tim Graham <timograham@gmail.com> | 2015-03-25 08:16:12 -0400 |
commit | 8f30556329b64005d63b66859a74752a0b261315 (patch) | |
tree | 73b5ac8d3be457f8061aa270437c9a957d2d622c /django/core/serializers/python.py | |
parent | f9c70bb3a1239ed1e04a769fd323286a5b1fde20 (diff) | |
download | django-8f30556329b64005d63b66859a74752a0b261315.tar.gz |
Renamed Field.rel attribute to remote_field
Field.rel is now deprecated. Rel objects have now also remote_field
attribute. This means that self == self.remote_field.remote_field.
In addition, made the Rel objects a bit more like Field objects. Still,
marked ManyToManyFields as null=True.
Diffstat (limited to 'django/core/serializers/python.py')
-rw-r--r-- | django/core/serializers/python.py | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/django/core/serializers/python.py b/django/core/serializers/python.py index 0b18f91858..7caff52066 100644 --- a/django/core/serializers/python.py +++ b/django/core/serializers/python.py @@ -55,7 +55,7 @@ class Serializer(base.Serializer): self._current[field.name] = field.value_to_string(obj) def handle_fk_field(self, obj, field): - if self.use_natural_foreign_keys and hasattr(field.rel.to, 'natural_key'): + if self.use_natural_foreign_keys and hasattr(field.remote_field.model, 'natural_key'): related = getattr(obj, field.name) if related: value = related.natural_key() @@ -68,8 +68,8 @@ class Serializer(base.Serializer): self._current[field.name] = value def handle_m2m_field(self, obj, field): - if field.rel.through._meta.auto_created: - if self.use_natural_foreign_keys and hasattr(field.rel.to, 'natural_key'): + if field.remote_field.through._meta.auto_created: + if self.use_natural_foreign_keys and hasattr(field.remote_field.model, 'natural_key'): m2m_value = lambda value: value.natural_key() else: m2m_value = lambda value: force_text(value._get_pk_val(), strings_only=True) @@ -120,33 +120,33 @@ def Deserializer(object_list, **options): field = Model._meta.get_field(field_name) # Handle M2M relations - if field.rel and isinstance(field.rel, models.ManyToManyRel): - if hasattr(field.rel.to._default_manager, 'get_by_natural_key'): + if field.remote_field and isinstance(field.remote_field, models.ManyToManyRel): + if hasattr(field.remote_field.model._default_manager, 'get_by_natural_key'): def m2m_convert(value): if hasattr(value, '__iter__') and not isinstance(value, six.text_type): - return field.rel.to._default_manager.db_manager(db).get_by_natural_key(*value).pk + return field.remote_field.model._default_manager.db_manager(db).get_by_natural_key(*value).pk else: - return force_text(field.rel.to._meta.pk.to_python(value), strings_only=True) + return force_text(field.remote_field.model._meta.pk.to_python(value), strings_only=True) else: - m2m_convert = lambda v: force_text(field.rel.to._meta.pk.to_python(v), strings_only=True) + m2m_convert = lambda v: force_text(field.remote_field.model._meta.pk.to_python(v), strings_only=True) m2m_data[field.name] = [m2m_convert(pk) for pk in field_value] # Handle FK fields - elif field.rel and isinstance(field.rel, models.ManyToOneRel): + elif field.remote_field and isinstance(field.remote_field, models.ManyToOneRel): if field_value is not None: - if hasattr(field.rel.to._default_manager, 'get_by_natural_key'): + if hasattr(field.remote_field.model._default_manager, 'get_by_natural_key'): if hasattr(field_value, '__iter__') and not isinstance(field_value, six.text_type): - obj = field.rel.to._default_manager.db_manager(db).get_by_natural_key(*field_value) - value = getattr(obj, field.rel.field_name) + obj = field.remote_field.model._default_manager.db_manager(db).get_by_natural_key(*field_value) + value = getattr(obj, field.remote_field.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: + if field.remote_field.model._meta.pk.remote_field: value = value.pk else: - value = field.rel.to._meta.get_field(field.rel.field_name).to_python(field_value) + value = field.remote_field.model._meta.get_field(field.remote_field.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) + data[field.attname] = field.remote_field.model._meta.get_field(field.remote_field.field_name).to_python(field_value) else: data[field.attname] = None |