Skip to content

Commit b8cff4e

Browse files
committed
fix ReverseManyToOneDescriptor through prefetching bug
1 parent ebdc1ef commit b8cff4e

File tree

4 files changed

+10
-4
lines changed

4 files changed

+10
-4
lines changed

HISTORY.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# Changelog
22

3+
## 2.2.1 (2024-10-28)
4+
- fix ReverseManyToOne through prefetch model selection
5+
36
## 2.2.0 (2024-10-22)
47
- Support for Django 5
58
- Django supported versions `5.0 -> 5.1`

drf_sideloading/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "2.2.0"
1+
__version__ = "2.2.1"

drf_sideloading/mixins.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,10 @@ def get_sideloadable_queryset(self, prefetch):
245245
elif isinstance(descriptor, ReverseOneToOneDescriptor):
246246
model = descriptor.related.related_model
247247
elif isinstance(descriptor, ReverseManyToOneDescriptor):
248-
model = descriptor.field.model
248+
if getattr(descriptor, "through", None):
249+
model = descriptor.field.related_model
250+
else:
251+
model = descriptor.field.model
249252
else:
250253
raise NotImplementedError(f"Descriptor {descriptor.__class__.__name__} has not been implemented")
251254
return model.objects.all()

setup.cfg

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[bumpversion]
2-
current_version = 2.2.0
2+
current_version = 2.2.1
33
commit = True
44
tag = True
55

@@ -10,7 +10,7 @@ universal = 1
1010

1111
[flake8]
1212
ignore = D203
13-
exclude =
13+
exclude =
1414
drf_sideloading/migrations,
1515
.git,
1616
.tox,

0 commit comments

Comments
 (0)