Added convenience method for viewing Query SQL without params.

This is the old Query.as_sql() method revived: it's like Query.__str__,
but the parameters aren't substituted into the placeholders. Thus, it's
a more accurate representation of the SQL the (default) backend will
see. Entirely internal.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@16655 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Malcolm Tredinnick 2011-08-23 03:38:28 +00:00
parent 0686c6b0ee
commit c3a0dcf6e9
1 changed files with 9 additions and 2 deletions

View File

@ -156,14 +156,21 @@ class Query(object):
def __str__(self): def __str__(self):
""" """
Returns the query as a string of SQL with the parameter values Returns the query as a string of SQL with the parameter values
substituted in. substituted in (use sql_with_params() to see the unsubstituted string).
Parameter values won't necessarily be quoted correctly, since that is Parameter values won't necessarily be quoted correctly, since that is
done by the database interface at execution time. done by the database interface at execution time.
""" """
sql, params = self.get_compiler(DEFAULT_DB_ALIAS).as_sql() sql, params = self.sql_with_params()
return sql % params return sql % params
def sql_with_params(self):
"""
Returns the query as an SQL string and the parameters that will be
subsituted into the query.
"""
return self.get_compiler(DEFAULT_DB_ALIAS).as_sql()
def __deepcopy__(self, memo): def __deepcopy__(self, memo):
result = self.clone(memo=memo) result = self.clone(memo=memo)
memo[id(self)] = result memo[id(self)] = result