summaryrefslogtreecommitdiff
path: root/django/db/models/fields
diff options
context:
space:
mode:
authorMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2009-03-01 04:12:30 +0000
committerMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2009-03-01 04:12:30 +0000
commit3242df16e4e53afc58657cd7e01d0ba807e96288 (patch)
tree39da1004cdf06f4f1258a6a6825f7294fdb41e01 /django/db/models/fields
parentc6a404d1e977cae75345594bf264ca103e1a1d33 (diff)
To avoid an unfortunately common user-error, rename QuerySet.as_sql().
This was never a public API method, so this is backwards compatible, unless you're poking at the internals. Refs #10352. git-svn-id: http://code.djangoproject.com/svn/django/trunk@9928 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/db/models/fields')
-rw-r--r--django/db/models/fields/__init__.py7
-rw-r--r--django/db/models/fields/related.py7
2 files changed, 10 insertions, 4 deletions
diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py
index 41e8c06b80..b7438e02b2 100644
--- a/django/db/models/fields/__init__.py
+++ b/django/db/models/fields/__init__.py
@@ -193,12 +193,15 @@ class Field(object):
def get_db_prep_lookup(self, lookup_type, value):
"Returns field's value prepared for database lookup."
- if hasattr(value, 'as_sql'):
+ if hasattr(value, 'as_sql') or hasattr(value, '_as_sql'):
# If the value has a relabel_aliases method, it will need to
# be invoked before the final SQL is evaluated
if hasattr(value, 'relabel_aliases'):
return value
- sql, params = value.as_sql()
+ try:
+ sql, params = value.as_sql()
+ except AttributeError:
+ sql, params = value._as_sql()
return QueryWrapper(('(%s)' % sql), params)
if lookup_type in ('regex', 'iregex', 'month', 'day', 'week_day', 'search'):
diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py
index b763b05647..8f874bc7e0 100644
--- a/django/db/models/fields/related.py
+++ b/django/db/models/fields/related.py
@@ -140,12 +140,15 @@ class RelatedField(object):
v = v[0]
return v
- if hasattr(value, 'as_sql'):
+ if hasattr(value, 'as_sql') or hasattr(value, '_as_sql'):
# If the value has a relabel_aliases method, it will need to
# be invoked before the final SQL is evaluated
if hasattr(value, 'relabel_aliases'):
return value
- sql, params = value.as_sql()
+ try:
+ sql, params = value.as_sql()
+ except AttributeError:
+ sql, params = value._as_sql()
return QueryWrapper(('(%s)' % sql), params)
# FIXME: lt and gt are explicitally allowed to make