File tree Expand file tree Collapse file tree 2 files changed +32
-1
lines changed
Expand file tree Collapse file tree 2 files changed +32
-1
lines changed Original file line number Diff line number Diff line change @@ -583,7 +583,11 @@ def cascade_save(self, **kwargs):
583583 def _qs (self ):
584584 """Return the default queryset corresponding to this document."""
585585 if not hasattr (self , "__objects" ):
586- self .__objects = QuerySet (self .__class__ , self ._get_collection ())
586+ queryset_class = self ._meta .get ("queryset_class" )
587+ if queryset_class is not None :
588+ self .__objects = queryset_class (self .__class__ , self ._get_collection ())
589+ else :
590+ self .__objects = QuerySet (self .__class__ , self ._get_collection ())
587591 return self .__objects
588592
589593 @property
Original file line number Diff line number Diff line change @@ -3914,6 +3914,33 @@ class Post(Document):
39143914
39153915 Post .drop_collection ()
39163916
3917+ def test_custom_querysets_set_manager_methods (self ):
3918+ """Ensure that custom QuerySet classes methods may be used."""
3919+
3920+ class CustomQuerySet (QuerySet ):
3921+ def delete (self , * args , ** kwargs ):
3922+ """Example of method when one want to change default behaviour of it"""
3923+ return 0
3924+
3925+ class CustomQuerySetManager (QuerySetManager ):
3926+ queryset_class = CustomQuerySet
3927+
3928+ class Post (Document ):
3929+ objects = CustomQuerySetManager ()
3930+
3931+ Post .drop_collection ()
3932+
3933+ assert isinstance (Post .objects , CustomQuerySet )
3934+ assert not Post .objects .delete ()
3935+
3936+ post = Post ()
3937+ post .save ()
3938+ assert Post .objects .count () == 1
3939+ post .delete ()
3940+ assert Post .objects .count () == 1
3941+
3942+ Post .drop_collection ()
3943+
39173944 def test_custom_querysets_managers_directly (self ):
39183945 """Ensure that custom QuerySet classes may be used."""
39193946
You can’t perform that action at this time.
0 commit comments