From a0155f35343afbfd9e98ab9aa4615f06780f697e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anssi=20K=C3=A4=C3=A4ri=C3=A4inen?= Date: Fri, 21 Dec 2012 20:56:04 +0200 Subject: [PATCH] [1.5.x] Refactored proxy model skipping in get_default_columns() The refactoring allows custom subclasses to use different default columns than the base model. --- django/db/models/sql/compiler.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/django/db/models/sql/compiler.py b/django/db/models/sql/compiler.py index 30b9bed8b4..7ea4cd700a 100644 --- a/django/db/models/sql/compiler.py +++ b/django/db/models/sql/compiler.py @@ -255,8 +255,6 @@ class SQLCompiler(object): result = [] if opts is None: opts = self.query.model._meta - # Skip all proxy to the root proxied model - opts = opts.concrete_model._meta qn = self.quote_name_unless_alias qn2 = self.connection.ops.quote_name aliases = set() @@ -265,6 +263,10 @@ class SQLCompiler(object): if start_alias: seen = {None: start_alias} for field, model in opts.get_fields_with_model(): + # For local fields (even if through proxy) the model should + # be None. + if model == opts.concrete_model: + model = None if local_only and model is not None: continue if start_alias: