summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorRussell Keith-Magee <russell@keith-magee.com>2009-07-27 14:32:30 +0000
committerRussell Keith-Magee <russell@keith-magee.com>2009-07-27 14:32:30 +0000
commit3412860f89a1f72257037c19c06beebc92dd7e06 (patch)
tree2f2c7dc89ad7e68c539cf1d360cde8a10275094b /django
parente00150af15f35b68d30fc1f7970384d10d1d6ff1 (diff)
Fixed #11428 -- Ensured that SQL generating commands and dumpdata don't include proxy models in their output. Thanks to Anssi Kaariainen for the report.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@11343 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django')
-rw-r--r--django/core/management/commands/dumpdata.py3
-rw-r--r--django/db/backends/creation.py10
2 files changed, 7 insertions, 6 deletions
diff --git a/django/core/management/commands/dumpdata.py b/django/core/management/commands/dumpdata.py
index 9172d938d2..7e05b89160 100644
--- a/django/core/management/commands/dumpdata.py
+++ b/django/core/management/commands/dumpdata.py
@@ -73,7 +73,8 @@ class Command(BaseCommand):
model_list = get_models(app)
for model in model_list:
- objects.extend(model._default_manager.all())
+ if not model._meta.proxy:
+ objects.extend(model._default_manager.all())
try:
return serializers.serialize(format, objects, indent=indent)
diff --git a/django/db/backends/creation.py b/django/db/backends/creation.py
index 1ac75426c1..43f47048e0 100644
--- a/django/db/backends/creation.py
+++ b/django/db/backends/creation.py
@@ -40,7 +40,7 @@ class BaseDatabaseCreation(object):
from django.db import models
opts = model._meta
- if not opts.managed:
+ if not opts.managed or opts.proxy:
return [], {}
final_output = []
table_output = []
@@ -121,7 +121,7 @@ class BaseDatabaseCreation(object):
"Returns any ALTER TABLE statements to add constraints after the fact."
from django.db.backends.util import truncate_name
- if not model._meta.managed:
+ if not model._meta.managed or model._meta.proxy:
return []
qn = self.connection.ops.quote_name
final_output = []
@@ -236,7 +236,7 @@ class BaseDatabaseCreation(object):
def sql_indexes_for_model(self, model, style):
"Returns the CREATE INDEX SQL statements for a single model"
- if not model._meta.managed:
+ if not model._meta.managed or model._meta.proxy:
return []
output = []
for f in model._meta.local_fields:
@@ -268,7 +268,7 @@ class BaseDatabaseCreation(object):
def sql_destroy_model(self, model, references_to_delete, style):
"Return the DROP TABLE and restraint dropping statements for a single model"
- if not model._meta.managed:
+ if not model._meta.managed or model._meta.proxy:
return []
# Drop the table now
qn = self.connection.ops.quote_name
@@ -286,7 +286,7 @@ class BaseDatabaseCreation(object):
def sql_remove_table_constraints(self, model, references_to_delete, style):
from django.db.backends.util import truncate_name
- if not model._meta.managed:
+ if not model._meta.managed or model._meta.proxy:
return []
output = []
qn = self.connection.ops.quote_name