summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorBaptiste Mispelon <bmispelon@gmail.com>2013-12-06 15:21:13 +0100
committerBaptiste Mispelon <bmispelon@gmail.com>2013-12-06 15:23:34 +0100
commit621c25c419ae0f4d6d0f76725e5f3585d76228d0 (patch)
treea7f16a114875b761d1e03996bc76ec5051d3ccfb /django
parent72479a29579f72a7713ac3c07eb92f5bafee25bd (diff)
downloaddjango-621c25c419ae0f4d6d0f76725e5f3585d76228d0.tar.gz
Added missing deconstruct() methods.
Diffstat (limited to 'django')
-rw-r--r--django/db/models/__init__.py1
-rw-r--r--django/db/models/fields/__init__.py2
-rw-r--r--django/db/models/fields/proxy.py5
-rw-r--r--django/db/models/fields/related.py16
4 files changed, 20 insertions, 4 deletions
diff --git a/django/db/models/__init__.py b/django/db/models/__init__.py
index e2f7348ef0..27db994b61 100644
--- a/django/db/models/__init__.py
+++ b/django/db/models/__init__.py
@@ -15,6 +15,7 @@ from django.db.models.fields.files import FileField, ImageField # NOQA
from django.db.models.fields.related import ( # NOQA
ForeignKey, ForeignObject, OneToOneField, ManyToManyField,
ManyToOneRel, ManyToManyRel, OneToOneRel)
+from django.db.models.fields.proxy import OrderWrt
from django.db.models.deletion import ( # NOQA
CASCADE, PROTECT, SET, SET_NULL, SET_DEFAULT, DO_NOTHING, ProtectedError)
from django.db.models import signals # NOQA
diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py
index 6b2dc2ad21..826471d9ed 100644
--- a/django/db/models/fields/__init__.py
+++ b/django/db/models/fields/__init__.py
@@ -230,6 +230,8 @@ class Field(object):
path = path.replace("django.db.models.fields.related", "django.db.models")
if path.startswith("django.db.models.fields.files"):
path = path.replace("django.db.models.fields.files", "django.db.models")
+ if path.startswith("django.db.models.fields.proxy"):
+ path = path.replace("django.db.models.fields.proxy", "django.db.models")
if path.startswith("django.db.models.fields"):
path = path.replace("django.db.models.fields", "django.db.models")
# Return basic info - other fields should override this.
diff --git a/django/db/models/fields/proxy.py b/django/db/models/fields/proxy.py
index 29c782b59a..19beb89011 100644
--- a/django/db/models/fields/proxy.py
+++ b/django/db/models/fields/proxy.py
@@ -16,3 +16,8 @@ class OrderWrt(fields.IntegerField):
kwargs['name'] = '_order'
kwargs['editable'] = False
super(OrderWrt, self).__init__(*args, **kwargs)
+
+ def deconstruct(self):
+ name, path, args, kwargs = super(OrderWrt, self).deconstruct()
+ del kwargs['editable']
+ return name, path, args, kwargs
diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py
index 23b508ebb5..be796f2af1 100644
--- a/django/db/models/fields/related.py
+++ b/django/db/models/fields/related.py
@@ -1019,6 +1019,16 @@ class ForeignObject(RelatedField):
super(ForeignObject, self).__init__(**kwargs)
+ def deconstruct(self):
+ name, path, args, kwargs = super(ForeignObject, self).deconstruct()
+ kwargs['from_fields'] = self.from_fields
+ kwargs['to_fields'] = self.to_fields
+ if isinstance(self.rel.to, six.string_types):
+ kwargs['to'] = self.rel.to
+ else:
+ kwargs['to'] = "%s.%s" % (self.rel.to._meta.app_label, self.rel.to._meta.object_name)
+ return name, path, args, kwargs
+
def resolve_related_fields(self):
if len(self.from_fields) < 1 or len(self.from_fields) != len(self.to_fields):
raise ValueError('Foreign Object from and to fields must be the same non-zero length')
@@ -1243,6 +1253,8 @@ class ForeignKey(ForeignObject):
def deconstruct(self):
name, path, args, kwargs = super(ForeignKey, self).deconstruct()
+ del kwargs['to_fields']
+ del kwargs['from_fields']
# Handle the simpler arguments
if self.db_index:
del kwargs['db_index']
@@ -1255,10 +1267,6 @@ class ForeignKey(ForeignObject):
# Rel needs more work.
if self.rel.field_name:
kwargs['to_field'] = self.rel.field_name
- if isinstance(self.rel.to, six.string_types):
- kwargs['to'] = self.rel.to
- else:
- kwargs['to'] = "%s.%s" % (self.rel.to._meta.app_label, self.rel.to._meta.object_name)
return name, path, args, kwargs
@property