summaryrefslogtreecommitdiff
path: root/archaeological_warehouse
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_warehouse')
-rw-r--r--archaeological_warehouse/models.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py
index add786012..268a0466a 100644
--- a/archaeological_warehouse/models.py
+++ b/archaeological_warehouse/models.py
@@ -1652,12 +1652,13 @@ class Container(
from_find = prefix.startswith("container_") or prefix.startswith(
"container_ref_"
)
+ base_exclude = [prefix + "container", prefix + "container_ref"]
if (
(not filtr or prefix + "finds" in filtr)
and not from_find
and "finds" not in kwargs.get("exclude", [])
):
- kwargs["exclude"] = [prefix + "container", prefix + "container_ref"]
+ kwargs["exclude"] = base_exclude[:]
# prevent recursive call
values[prefix + "finds"] = [
f.get_values(prefix=prefix, no_values=True, filtr=None, **kwargs)
@@ -1684,13 +1685,14 @@ class Container(
if bf:
cr = bf.context_record
if not filtr or cr_in_filter:
- kwargs["exclude"] = [prefix + "operation"]
+ kwargs["exclude"] = base_exclude[:] + [prefix + "operation"]
+ kwargs["force_no_base_finds"] = True
for k, v in cr.get_values(
prefix=prefix, no_values=True, filtr=None, **kwargs
).items():
values[prefix + "context_record_" + k] = v
if not filtr or operation_in_filter:
- kwargs["exclude"] = [prefix + "context_records"]
+ kwargs["exclude"] = base_exclude[:] + [prefix + "context_records"]
for k, v in cr.operation.get_values(
prefix=prefix, no_values=True, filtr=None, **kwargs
).items():