diff options
author | Hugo Rodger-Brown <hugo@yunojuno.com> | 2015-11-24 22:32:32 +0000 |
---|---|---|
committer | Hugo Rodger-Brown <hugo@yunojuno.com> | 2015-11-24 22:43:35 +0000 |
commit | 0ef9524195546a607f43057207ac62c36e2bb38d (patch) | |
tree | c2ba83377a866bec2aff6feb1d2e3b3f69a4084b /semantic_version/django_fields.py | |
parent | 2ed3d39c291080c61edd9139370939e1fdc3209a (diff) | |
download | semantic-version-0ef9524195546a607f43057207ac62c36e2bb38d.tar.gz |
Fix issue #33 - null VersionField breaks ORM
I've updated the `BaseSemVerField` method `get_prep_value` so that it
will return None when the field value is None, rather than the string
representation 'None'. Previously this would break the ORM, which would
save the string 'None' into the database, and then attempt to parse that
as a version number. This change means that the default empty value for
both VersionField and SpecField is None. Both derive from CharField,
which uses an empty string as its default empty value, however it seems
more logical in the case of these objects that no object is null, and
not an empty string.
Includes tests.
Diffstat (limited to 'semantic_version/django_fields.py')
-rw-r--r-- | semantic_version/django_fields.py | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/semantic_version/django_fields.py b/semantic_version/django_fields.py index a0c6979..740c208 100644 --- a/semantic_version/django_fields.py +++ b/semantic_version/django_fields.py @@ -18,7 +18,7 @@ class BaseSemVerField(models.CharField): super(BaseSemVerField, self).__init__(*args, **kwargs) def get_prep_value(self, obj): - return str(obj) + return None if obj is None else str(obj) def get_db_prep_value(self, value, connection, prepared=False): if not prepared: |