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
This commit is contained in:
parent
c6a404d1e9
commit
3242df16e4
|
@ -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
|
||||
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'):
|
||||
|
|
|
@ -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
|
||||
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
|
||||
|
|
|
@ -703,12 +703,9 @@ class QuerySet(object):
|
|||
self.query.add_fields(field_names, False)
|
||||
self.query.set_group_by()
|
||||
|
||||
def as_sql(self):
|
||||
def _as_sql(self):
|
||||
"""
|
||||
Returns the internal query's SQL and parameters (as a tuple).
|
||||
|
||||
This is a private (internal) method. The name is chosen to provide
|
||||
uniformity with other interfaces (in particular, the Query class).
|
||||
"""
|
||||
obj = self.values("pk")
|
||||
return obj.query.as_nested_sql()
|
||||
|
@ -812,7 +809,7 @@ class ValuesQuerySet(QuerySet):
|
|||
|
||||
super(ValuesQuerySet, self)._setup_aggregate_query(aggregates)
|
||||
|
||||
def as_sql(self):
|
||||
def _as_sql(self):
|
||||
"""
|
||||
For ValueQuerySet (and subclasses like ValuesListQuerySet), they can
|
||||
only be used as nested queries if they're already set up to select only
|
||||
|
|
Loading…
Reference in New Issue