summaryrefslogtreecommitdiff
path: root/src/semantic_version/django_fields.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/semantic_version/django_fields.py')
-rw-r--r--src/semantic_version/django_fields.py19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/semantic_version/django_fields.py b/src/semantic_version/django_fields.py
index 3259331..6a70129 100644
--- a/src/semantic_version/django_fields.py
+++ b/src/semantic_version/django_fields.py
@@ -2,6 +2,8 @@
# Copyright (c) 2012-2013 Raphaƫl Barrois
# This code is distributed under the two-clause BSD License.
+from __future__ import unicode_literals
+
from django.db import models
from django.utils.translation import ugettext_lazy as _
@@ -31,11 +33,16 @@ class BaseSemVerField(models.CharField):
return super(BaseSemVerField, self).run_validators(str(value))
-class VersionField(BaseSemVerField):
+# Py2 and Py3-compatible metaclass
+SemVerField = models.SubfieldBase(
+ str('SemVerField'), (BaseSemVerField, models.CharField), {})
+
+
+class VersionField(SemVerField):
default_error_messages = {
- 'invalid': _(u"Enter a valid version number in X.Y.Z format."),
+ 'invalid': _("Enter a valid version number in X.Y.Z format."),
}
- description = _(u"Version")
+ description = _("Version")
def __init__(self, *args, **kwargs):
self.partial = kwargs.pop('partial', False)
@@ -54,11 +61,11 @@ class VersionField(BaseSemVerField):
return base.Version(value, partial=self.partial)
-class SpecField(BaseSemVerField):
+class SpecField(SemVerField):
default_error_messages = {
- 'invalid': _(u"Enter a valid version number spec list in ==X.Y.Z,>=A.B.C format."),
+ 'invalid': _("Enter a valid version number spec list in ==X.Y.Z,>=A.B.C format."),
}
- description = _(u"Version specification list")
+ description = _("Version specification list")
def to_python(self, value):
"""Converts any value to a base.Spec field."""