Skip to content

Commit

Permalink
Fix support for custom manager in VirtualModel
Browse files Browse the repository at this point in the history
  • Loading branch information
fjsj committed May 29, 2023
1 parent 2493293 commit bb7a526
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions django_virtual_models/fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -200,8 +200,12 @@ def __init__(
raise InvalidVirtualModelParams("Always provide a `lookup` when providing a `to_attr`")

self.user = user
self.manager = manager or self.Meta.model._default_manager
self.model_cls = self.Meta.model or manager.model
if manager is None:
self.manager = self.Meta.model._default_manager
self.model_cls = self.Meta.model
else:
self.manager = manager
self.model_cls = manager.model
self.lookup = lookup
self.to_attr = to_attr # can be `None`, but will receive `field_name` in `bind()`
self.extra_kwargs = kwargs
Expand Down Expand Up @@ -328,8 +332,6 @@ def hydrate_queryset(
prefetch = Prefetch(self.field_name, queryset=prefetch_queryset)

new_qs = qs.prefetch_related(prefetch)
# prefeches don't need lookup
# (but their internal qs need, see prefetch_queryset above)
return new_qs

def get_optimized_queryset(
Expand Down

0 comments on commit bb7a526

Please sign in to comment.