aboutsummaryrefslogtreecommitdiff
path: root/rpki
diff options
context:
space:
mode:
Diffstat (limited to 'rpki')
-rw-r--r--rpki/fields.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/rpki/fields.py b/rpki/fields.py
index 06f71259..6a2dc4d0 100644
--- a/rpki/fields.py
+++ b/rpki/fields.py
@@ -42,8 +42,6 @@ class EnumField(models.PositiveSmallIntegerField):
description = "An enumeration type"
- __metaclass__ = models.SubfieldBase
-
def __init__(self, *args, **kwargs):
if isinstance(kwargs.get("choices"), (tuple, list)) and isinstance(kwargs["choices"][0], (str, unicode)):
kwargs["choices"] = tuple(enumerate(kwargs["choices"], 1))
@@ -52,7 +50,11 @@ class EnumField(models.PositiveSmallIntegerField):
self.enum_i2s = dict(self.flatchoices)
self.enum_s2i = dict((v, k) for k, v in self.flatchoices)
+ def from_db_value(self, value, expression, connection, context):
+ return self.enum_i2s.get(value, value)
+
def to_python(self, value):
+ value = super(EnumField, self).to_python(value)
return self.enum_i2s.get(value, value)
def get_prep_value(self, value):
@@ -63,10 +65,12 @@ class SundialField(models.DateTimeField):
"""
A field type for our customized datetime objects.
"""
- __metaclass__ = models.SubfieldBase
description = "A datetime type using our customized datetime objects"
+ def from_db_value(self, value, expression, connection, context):
+ return self.to_python(value)
+
def to_python(self, value):
if isinstance(value, rpki.sundial.pydatetime.datetime):
return rpki.sundial.datetime.from_datetime(
@@ -88,7 +92,6 @@ class BlobField(models.Field):
Do not use, this is only here for backwards compatabilty during migrations.
"""
- __metaclass__ = models.SubfieldBase
description = "Raw BLOB type without ASN.1 encoding/decoding"
def __init__(self, *args, **kwargs):
@@ -98,6 +101,13 @@ class BlobField(models.Field):
kwargs["default"] = None
models.Field.__init__(self, *args, **kwargs)
+ def deconstruct(self):
+ name, path, args, kwargs = super(BlobField, self).deconstruct()
+ del kwargs["serialize"]
+ del kwargs["blank"]
+ del kwargs["default"]
+ return name, path, args, kwargs
+
def db_type(self, connection):
if self.blob_type is not None:
return self.blob_type