Get rid of dumpdata and serialize document programatically, add support for model specific pk sanitation

This commit is contained in:
Roberto Rosario
2012-09-29 01:08:58 -04:00
parent 73912f11d4
commit f2ad6b5cde
7 changed files with 37 additions and 29 deletions

View File

@@ -2,16 +2,15 @@ from __future__ import absolute_import
import logging
try:
from cStringIO import StringIO
except ImportError:
from StringIO import StringIO
#try:
# from cStringIO import StringIO
#except ImportError:
# from StringIO import StringIO
from django.db import models
from django.core import management
from django.core import serializers
from .classes import BootstrapModel
from .literals import COMMAND_DUMPDATA
logger = logging.getLogger(__name__)
@@ -24,12 +23,14 @@ class BootstrapSetupManager(models.Manager):
"""
pass
def dump(cls, format):
models = [instance.get_fullname() for instance in BootstrapModel.get_all()]
logger.debug('models: %s' % models)
result = StringIO()
options = dict(indent=4, format=format, use_natural_keys=True, interactive=False, verbosity=0, stdout=result)
management.call_command(COMMAND_DUMPDATA, *models, **options)
result.seek(0)
logger.debug('result: %s' % result)
return result.read()
def dump(self, serialization_format):
result = []
#models = [instance.get_fullname()
for bootstrap_model in BootstrapModel.get_all():
#logger.debug('models: %s' % models)
#options = dict(indent=4, format=format, use_natural_keys=True, interactive=False, verbosity=0, stdout=result)
#management.call_command(COMMAND_DUMPDATA, *models, **options)
#logger.debug('result: %s' % result)
result.append(bootstrap_model.dump(serialization_format))
#return result.read()
return '\n'.join(result)