I am new to Python, and I'm facing the following nested Schema issue:. I don't know if this is my issue or Djapy's parser.
class Gender(str, Enum):
male = "male"
female = "female"
class PersonSchema(Schema):
id: int
name: str
gender: Gender
place_of_birth: Optional[str]
date_of_birth: date
class FamilySchema(Schema):
id: int
name: str
level: int
members: Optional[PersonSchema]
class Family(models.Model):
class Meta:
ordering = ["name"]
verbose_name_plural = "Families"
name = models.CharField(max_length=100)
members = models.ManyToManyField(Person, related_name="families")
level = models.PositiveIntegerField()
deleted = models.DateTimeField(null=True, blank=True)
def __str__(self):
return f"{self.name} - Level {self.level}"
@djapify(allowed_method="GET", tags=["Family Tree"])
def get_all_families(request) -> {200: List[FamilySchema], 404: MessageOut, 500: MessageOut}: # type: ignore
"""
Retrieve all families that are not deleted.
"""
try:
families: List[FamilySchema] = Family.objects.all()
# Print first family details
logIt(
"๐ family_tree/views.py ~ get_all_families ~ families[0]",
families[0]
)
logIt(
"๐ family_tree/views.py ~ get_all_families ~ families.count",
families.count(),
)
if families.count() > 0:
return 200, families
else:
logIt(
"๐ family_tree/views.py ~ get_all_families ~ No families found",
" No families found",
)
return 404, MessageOut(
"No families found",
"no_families_found",
"error",
)
except Exception as e:
return 500, MessageOut(
str(e),
"database_error",
"error",
)
๐ family_tree/views.py ~ get_all_families ~ families[0] ~ Test - 55 - Level 55
๐ family_tree/views.py ~ get_all_families ~ families.count ~ 2
ERROR:root:Unable to serialize unknown type: <class 'django.db.models.fields.related_descriptors.create_forward_many_to_many_manager.<locals>.ManyRelatedManager'>
Traceback (most recent call last):
File "/run/media/nirdesh/Nirdesh/python/blog-django/benv/lib64/python3.12/site-packages/djapy/core/dec.py", line 242, in _wrapped_view
parsed_data = parser.parse_response_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/run/media/nirdesh/Nirdesh/python/blog-django/benv/lib64/python3.12/site-packages/djapy/core/parser.py", line 105, in parse_response_data
destructured_object_data = validated_obj.model_dump(mode="json", by_alias=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/run/media/nirdesh/Nirdesh/python/blog-django/benv/lib64/python3.12/site-packages/pydantic/main.py", line 314, in model_dump
return self.__pydantic_serializer__.to_python(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.PydanticSerializationError: Unable to serialize unknown type: <class 'django.db.models.fields.related_descriptors.create_forward_many_to_many_manager.<locals>.ManyRelatedManager'>
Internal Server Error: /family/families
ERROR:django.request:Internal Server Error: /family/families