From ed20dd2e85a0bbd45085809417c29e92ced5e618 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Sat, 12 Dec 2015 23:09:13 +0100 Subject: Fixed #25875 -- Prevented UnicodeDecodeError for Q object repr Thanks Ben Kraft for the report, and Simon Charette for the review. --- django/utils/tree.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'django/utils') diff --git a/django/utils/tree.py b/django/utils/tree.py index 9eb3aeb5d6..50712bb866 100644 --- a/django/utils/tree.py +++ b/django/utils/tree.py @@ -5,6 +5,8 @@ ORM. import copy +from django.utils.encoding import force_str, force_text + class Node(object): """ @@ -42,14 +44,11 @@ class Node(object): return obj def __str__(self): - if self.negated: - return '(NOT (%s: %s))' % (self.connector, ', '.join(str(c) for c - in self.children)) - return '(%s: %s)' % (self.connector, ', '.join(str(c) for c in - self.children)) + template = '(NOT (%s: %s))' if self.negated else '(%s: %s)' + return force_str(template % (self.connector, ', '.join(force_text(c) for c in self.children))) def __repr__(self): - return "<%s: %s>" % (self.__class__.__name__, self) + return str("<%s: %s>") % (self.__class__.__name__, self) def __deepcopy__(self, memodict): """ -- cgit v1.3