diff --git a/apps/common/drf/filters.py b/apps/common/drf/filters.py index 103eef212..0fb8ca63a 100644 --- a/apps/common/drf/filters.py +++ b/apps/common/drf/filters.py @@ -223,7 +223,7 @@ class LabelFilterBackend(filters.BaseFilterBackend): return queryset model = queryset.model - labeled_resource_cls = model.labels.field.related_model + labeled_resource_cls = model._labels.field.related_model app_label = model._meta.app_label model_name = model._meta.model_name diff --git a/apps/labels/const.py b/apps/labels/const.py index bf77ed46b..108b07df0 100644 --- a/apps/labels/const.py +++ b/apps/labels/const.py @@ -5,6 +5,7 @@ class LabeledResourceType(LazyObject): @staticmethod def get_res_types(): from rbac.models import ContentType + from .mixins import LabeledMixin content_types = ContentType.objects.all() ids = [] for ct in content_types: @@ -13,7 +14,7 @@ class LabeledResourceType(LazyObject): continue if model_cls._meta.parents: continue - if 'labels' in model_cls._meta._forward_fields_map.keys(): + if issubclass(model_cls, LabeledMixin): ids.append(ct.id) return ContentType.objects.filter(id__in=ids)