From 1316d8115a846e6b24879a09bb03002434eba68f Mon Sep 17 00:00:00 2001 From: Griatch Date: Mon, 24 Aug 2015 19:39:25 +0200 Subject: [PATCH] Fixed returns_typeclass decorator to properly handle filtered query results. Resolves #791. --- evennia/typeclasses/managers.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/evennia/typeclasses/managers.py b/evennia/typeclasses/managers.py index b533cb6a0d..4b3cfdb73a 100644 --- a/evennia/typeclasses/managers.py +++ b/evennia/typeclasses/managers.py @@ -41,7 +41,11 @@ def returns_typeclass(method): def func(self, *args, **kwargs): self.__doc__ = method.__doc__ query = method(self, *args, **kwargs) - return query + if hasattr(query, "__iter__"): + result = list(query) + return result[0] if result else None + else: + return query return update_wrapper(func, method) # Managers