Fixed #11286 -- Ensured that dumpdata uses the default manager, rather than always using the manager called `objects`. Thanks to Marc Remolt for the report.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@10967 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Russell Keith-Magee 2009-06-09 13:14:40 +00:00
parent 64be8f29d5
commit d3bd3203f9
2 changed files with 10 additions and 1 deletions

View File

@ -73,7 +73,7 @@ class Command(BaseCommand):
model_list = get_models(app) model_list = get_models(app)
for model in model_list: for model in model_list:
objects.extend(model.objects.all()) objects.extend(model._default_manager.all())
try: try:
return serializers.serialize(format, objects, indent=indent) return serializers.serialize(format, objects, indent=indent)

View File

@ -9,6 +9,9 @@ class Animal(models.Model):
count = models.IntegerField() count = models.IntegerField()
weight = models.FloatField() weight = models.FloatField()
# use a non-default name for the default manager
specimens = models.Manager()
def __unicode__(self): def __unicode__(self):
return self.common_name return self.common_name
@ -161,4 +164,10 @@ Weight = 1.2 (<type 'float'>)
>>> models.signals.pre_save.disconnect(animal_pre_save_check) >>> models.signals.pre_save.disconnect(animal_pre_save_check)
###############################################
# Regression for #11286 -- Ensure that dumpdata honors the default manager
# Dump the current contents of the database as a JSON fixture
>>> management.call_command('dumpdata', 'fixtures_regress.animal', format='json')
[{"pk": 1, "model": "fixtures_regress.animal", "fields": {"count": 3, "weight": 1.2, "name": "Lion", "latin_name": "Panthera leo"}}, {"pk": 2, "model": "fixtures_regress.animal", "fields": {"count": 2, "weight": 2.29..., "name": "Platypus", "latin_name": "Ornithorhynchus anatinus"}}, {"pk": 10, "model": "fixtures_regress.animal", "fields": {"count": 42, "weight": 1.2, "name": "Emu", "latin_name": "Dromaius novaehollandiae"}}]
"""} """}