Commit 3242df16 authored by Malcolm Tredinnick's avatar Malcolm Tredinnick
Browse files

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
parent c6a404d1
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -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'):
+5 −2
Original line number Diff line number Diff line
@@ -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
+2 −5
Original line number Diff line number Diff line
@@ -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