diff --git a/emgapi/serializers.py b/emgapi/serializers.py index 2dc7f9c97..724f9c553 100644 --- a/emgapi/serializers.py +++ b/emgapi/serializers.py @@ -17,6 +17,8 @@ import logging +from django.db.models import Q + from rest_framework_json_api import serializers from rest_framework_json_api import relations @@ -1033,8 +1035,10 @@ def get_studies(self, obj): .filter(study_id=obj.study_id) \ .values("sample_id") studies = emg_models.StudySample.objects \ - .filter(sample_id__in=samples) \ - .values("study_id") + .filter( + Q(sample_id__in=samples), + ~Q(study_id=obj.study_id) + ).values("study_id") queryset = emg_models.Study.objects.filter(study_id__in=studies) \ .available(self.context['request']).distinct() return queryset diff --git a/emgapi/views_relations.py b/emgapi/views_relations.py index 9a40019bb..52bf1285c 100644 --- a/emgapi/views_relations.py +++ b/emgapi/views_relations.py @@ -17,6 +17,7 @@ from django.db.models import Prefetch from django.shortcuts import get_object_or_404 +from django.db.models import Q from django_filters.rest_framework import DjangoFilterBackend @@ -151,8 +152,10 @@ def get_queryset(self): .filter(study_id=study.study_id) \ .values("sample_id") studies = emg_models.StudySample.objects \ - .filter(sample_id__in=samples) \ - .values("study_id") + .filter( + Q(sample_id__in=samples), + ~Q(study_id=study.study_id) + ).values("study_id") queryset = emg_models.Study.objects.filter(study_id__in=studies) \ .available(self.request).distinct() return queryset