'When `self.default_timezone` is `None`, always return naive datetimes.
When `self.default_timezone` is not `None`, always return aware datetimes.'

def enforce_timezone(self, value):

    field_timezone = getattr(self, u'timezone', self.default_timezone())
    if ((field_timezone is not None) and (not timezone.is_aware(value))):
        try:
            return timezone.make_aware(value, field_timezone)
        except InvalidTimeError:
            self.fail(u'make_aware', timezone=field_timezone)
    elif ((field_timezone is None) and timezone.is_aware(value)):
        return timezone.make_naive(value, utc)
    return value
