API: fix infinite recursion while generating swagger docs

This commit is contained in:
Petr Dlouhý 2023-04-13 11:02:16 +02:00
parent a5a0975c3f
commit 205935ec19

View file

@ -6,6 +6,8 @@ from ..models import Category
class CategorySerializer(serializers.ModelSerializer):
children = serializers.SerializerMethodField(method_name="_get_children")
class Meta:
model = Category
fields = [
@ -24,6 +26,10 @@ class CategorySerializer(serializers.ModelSerializer):
"children",
]
def _get_children(self, obj):
children = obj.get_children()
return CategorySerializer(children, many=True).data
countable_fields = [
f
@ -50,12 +56,6 @@ for field in countable_fields:
CategorySerializer.Meta.fields += [f"{field.name}_count_cumulative"]
CategorySerializer._declared_fields["children"] = CategorySerializer(
many=True,
source="get_children",
)
class CategoryList(list): # To overcome problem with filters that require model in queryset
model = Category