From f465a6afb71573bac0876dd8cc56aaae4d67035c Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Tue, 14 Jun 2011 18:16:00 -0500 Subject: Mark several package columns as non-NULL These have been around for a long time now so they don't need to be NULL-able anymore. We can also add a custom field type for our numbers to at least get a check constraint at the Django level. Signed-off-by: Dan McGee --- main/models.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'main/models.py') diff --git a/main/models.py b/main/models.py index 926e737..57e9650 100644 --- a/main/models.py +++ b/main/models.py @@ -11,6 +11,17 @@ from datetime import datetime from itertools import groupby import pytz +class PositiveBigIntegerField(models.BigIntegerField): + _south_introspects = True + + def get_internal_type(self): + return "PositiveBigIntegerField" + + def formfield(self, **kwargs): + defaults = {'min_value': 0} + defaults.update(kwargs) + return super(PositiveBigIntegerField, self).formfield(**defaults) + def validate_pgp_key_length(value): if len(value) not in (8, 16, 40): raise ValidationError( @@ -131,11 +142,10 @@ class Package(models.Model): pkgdesc = models.CharField(max_length=255, null=True) url = models.CharField(max_length=255, null=True) filename = models.CharField(max_length=255) - # TODO: it would be nice to have the >0 check constraint back here - compressed_size = models.BigIntegerField(null=True) - installed_size = models.BigIntegerField(null=True) + compressed_size = PositiveBigIntegerField() + installed_size = PositiveBigIntegerField() build_date = models.DateTimeField(null=True) - last_update = models.DateTimeField(null=True, blank=True) + last_update = models.DateTimeField() files_last_update = models.DateTimeField(null=True, blank=True) packager_str = models.CharField(max_length=255) packager = models.ForeignKey(User, null=True, -- cgit v1.2.3-24-g4f1b