aboutsummaryrefslogtreecommitdiff
path: root/rpkid/rpki/irdb/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'rpkid/rpki/irdb/models.py')
-rw-r--r--rpkid/rpki/irdb/models.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/rpkid/rpki/irdb/models.py b/rpkid/rpki/irdb/models.py
index 8235a33e..010ba635 100644
--- a/rpkid/rpki/irdb/models.py
+++ b/rpkid/rpki/irdb/models.py
@@ -28,6 +28,7 @@ import rpki.sundial
import rpki.resource_set
import rpki.ipaddrs
import socket
+from south.modelsinspector import add_introspection_rules
## @var ip_version_choices
# Choice argument for fields implementing IP version numbers.
@@ -64,6 +65,7 @@ class HandleField(django.db.models.CharField):
kwargs["max_length"] = 120
django.db.models.CharField.__init__(self, *args, **kwargs)
+
class EnumField(django.db.models.PositiveSmallIntegerField):
"""
An enumeration type that uses strings in Python and small integers
@@ -75,7 +77,7 @@ class EnumField(django.db.models.PositiveSmallIntegerField):
__metaclass__ = django.db.models.SubfieldBase
def __init__(self, *args, **kwargs):
- if isinstance(kwargs["choices"], (tuple, list)) and isinstance(kwargs["choices"][0], str):
+ if isinstance(kwargs.get("choices"), (tuple, list)) and isinstance(kwargs["choices"][0], str):
kwargs["choices"] = tuple(enumerate(kwargs["choices"], 1))
django.db.models.PositiveSmallIntegerField.__init__(self, *args, **kwargs)
self.enum_i2s = dict(self.flatchoices)
@@ -588,3 +590,14 @@ class Client(CrossCertification):
# This shouldn't be necessary
class Meta:
unique_together = ("issuer", "handle")
+
+
+# for Django South -- these are just simple subclasses
+add_introspection_rules([],
+ ('^rpki\.irdb\.models\.CertificateField',
+ '^rpki\.irdb\.models\.CRLField',
+ '^rpki\.irdb\.models\.EnumField',
+ '^rpki\.irdb\.models\.HandleField',
+ '^rpki\.irdb\.models\.RSAKeyField',
+ '^rpki\.irdb\.models\.SignedReferralField',
+ '^rpki\.irdb\.models\.SundialField'))