Support 1-arg queryset managers, but warn about deprecation

This commit is contained in:
Harry Marr 2010-02-23 18:27:14 +00:00
parent 6dbc051409
commit 145b0c33fc

View File

@ -724,6 +724,9 @@ class QuerySetManager(object):
# owner is the document that contains the QuerySetManager
queryset = QuerySet(owner, self._collection)
if self._manager_func:
if self._manager_func.func_code.co_argcount == 1:
queryset = self._manager_func(queryset)
else:
queryset = self._manager_func(owner, queryset)
return queryset
@ -735,4 +738,8 @@ def queryset_manager(func):
function should return a :class:`~mongoengine.queryset.QuerySet`, probably
the same one that was passed in, but modified in some way.
"""
if func.func_code.co_argcount == 1:
import warnings
msg = 'Methods decorated with queryset_manager should take 2 arguments'
warnings.warn(msg, DeprecationWarning)
return QuerySetManager(func)