Skip to content

Commit df1dd3f

Browse files
committed
fix
1 parent 6d2290c commit df1dd3f

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

drf_sideloading/mixins.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,9 @@ def check_sideload_params(self, relations_to_sideload: Dict, sideloadable_fields
9898
if relation not in sideloadable_fields:
9999
msg = _(f"'{relation}' is not one of the available choices.")
100100
raise ValidationError({self.sideloading_query_param_name: [msg]})
101-
if isinstance(source_keys, list):
101+
if source_keys is not None:
102+
if not isinstance(source_keys, (set, list)):
103+
raise ValueError(f"Source_keys must be a list or set not '{type(source_keys)}'")
102104
if not isinstance(prefetches.get(relation), dict):
103105
msg = _(f"'{relation}' does not have multiple sources")
104106
raise ValidationError({self.sideloading_query_param_name: [msg]})
@@ -581,9 +583,11 @@ def _get_relevant_prefetches(
581583

582584
if requested_sources:
583585
for invalid_source_key in set(requested_sources) - set(relation_prefetches.keys()):
584-
raise ValidationError(
585-
f"source '{invalid_source_key}' has not been implemented for sideloadable field '{relation}'"
586+
msg = _(
587+
f"'{invalid_source_key}' is not one of the available source keys for relation '{relation}'"
586588
)
589+
raise ValidationError({self.sideloading_query_param_name: [msg]})
590+
587591
elif "__all__" in relation_prefetches:
588592
# find source in case it's not a Prefetch object.
589593
# requested_sources = [relation_prefetches["__all__"].to_attr]

0 commit comments

Comments
 (0)