summaryrefslogtreecommitdiff
path: root/django/core/serializers/python.py
diff options
context:
space:
mode:
authorAnssi Kääriäinen <anssi.kaariainen@thl.fi>2015-02-26 16:19:17 +0200
committerTim Graham <timograham@gmail.com>2015-03-25 08:16:12 -0400
commit8f30556329b64005d63b66859a74752a0b261315 (patch)
tree73b5ac8d3be457f8061aa270437c9a957d2d622c /django/core/serializers/python.py
parentf9c70bb3a1239ed1e04a769fd323286a5b1fde20 (diff)
downloaddjango-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.py30
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