summaryrefslogtreecommitdiff
path: root/mirrors/models.py
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2011-06-14 18:11:09 -0500
committerDan McGee <dan@archlinux.org>2011-06-14 18:17:22 -0500
commit2fd78dfa0019d1b1d25f89a7729b5ebb0f341a93 (patch)
treeafcbaeb99104f017e67b780c3328fc704583e2a3 /mirrors/models.py
parentb336dd15598132d1c501a9d44bc4d5a0e64bfb2e (diff)
Allow mirror country field to be persisted to DB as NULL
You need a custom field type in Django to allow this. Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'mirrors/models.py')
-rw-r--r--mirrors/models.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/mirrors/models.py b/mirrors/models.py
index bcde210c..4f70e5a9 100644
--- a/mirrors/models.py
+++ b/mirrors/models.py
@@ -1,8 +1,17 @@
+import socket
+from urlparse import urlparse
+
from django.db import models
from django.core.exceptions import ValidationError
-import socket
-from urlparse import urlparse
+class NullCharField(models.CharField):
+ description = "String (up to %(max_length)s), NULL if value is empty"
+ _south_introspects = True
+
+ def get_prep_value(self, value):
+ if value == '':
+ return None
+ return self.to_python(value)
TIER_CHOICES = (
(0, 'Tier 0'),
@@ -58,7 +67,7 @@ class MirrorUrl(models.Model):
protocol = models.ForeignKey(MirrorProtocol, related_name="urls",
editable=False, on_delete=models.PROTECT)
mirror = models.ForeignKey(Mirror, related_name="urls")
- country = models.CharField(max_length=255, blank=True, null=True,
+ country = NullCharField(max_length=255, null=True, blank=True,
db_index=True)
has_ipv4 = models.BooleanField("IPv4 capable", default=True,
editable=False)