Я впервые пытаюсь использовать Django Ninja и сталкиваюсь со странной ошибкой

Я не могу понять, какую ошибку я получаю. Я просто пытаюсь настроить схему модели для моей модели. Я старый Django-шник, но ninja для меня в новинку. Что я делаю не так? Буду рад любой помощи и обратной связи.

Моя модель такова

class Program(models.Model):
    mentor = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    description = models.TextField()
    start_date = models.DateField()
    end_date = models.DateField()
    attendees = models.ManyToManyField(settings.AUTH_USER_MODEL, related_name="attendees")
    participants = models.ManyToManyField(settings.AUTH_USER_MODEL, related_name="participants")

    created_on = models.DateTimeField(auto_now_add = True)
    updated_on = models.DateTimeField(auto_now = True)

В моем api.py есть следующее определение

class MentorOutSchema(ModelSchema):
    class Config:
        model = Program
        model_fields = [
                "mentor",
                "description",
                "start_date",
                "end_date",
                "attendees",
                "participants",
            ]

Моя конечная точка такова

@router.get('/programs')
async def mentor_programs(request, response=list[MentorOutSchema]):
    return Program.objects.filter(mentor=request.user)

Когда я запускаю сервер, я получаю следующую ошибку

    @router.get('/programs')
     ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/vivekv/.cache/pypoetry/virtualenvs/pifnow-Zp6OiFzb-py3.12/lib/python3.12/site-packages/ninja/router.py", line 268, in decorator
    self.add_api_operation(
  File "/home/vivekv/.cache/pypoetry/virtualenvs/pifnow-Zp6OiFzb-py3.12/lib/python3.12/site-packages/ninja/router.py", line 319, in add_api_operation
    path_view.add_operation(
  File "/home/vivekv/.cache/pypoetry/virtualenvs/pifnow-Zp6OiFzb-py3.12/lib/python3.12/site-packages/ninja/operation.py", line 426, in add_operation
    operation = OperationClass(
                ^^^^^^^^^^^^^^^
  File "/home/vivekv/.cache/pypoetry/virtualenvs/pifnow-Zp6OiFzb-py3.12/lib/python3.12/site-packages/ninja/operation.py", line 331, in __init__
    super().__init__(*args, **kwargs)
  File "/home/vivekv/.cache/pypoetry/virtualenvs/pifnow-Zp6OiFzb-py3.12/lib/python3.12/site-packages/ninja/operation.py", line 82, in __init__
    self.signature = ViewSignature(self.path, self.view_func)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/vivekv/.cache/pypoetry/virtualenvs/pifnow-Zp6OiFzb-py3.12/lib/python3.12/site-packages/ninja/signature/details.py", line 87, in __init__
    self.models: TModels = self._create_models()
                           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/vivekv/.cache/pypoetry/virtualenvs/pifnow-Zp6OiFzb-py3.12/lib/python3.12/site-packages/ninja/signature/details.py", line 171, in _create_models
    model_cls = type(cls_name, (base_cls,), attrs)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/vivekv/.cache/pypoetry/virtualenvs/pifnow-Zp6OiFzb-py3.12/lib/python3.12/site-packages/pydantic/_internal/_model_construction.py", line 219, in __new__
    set_model_fields(cls, bases, config_wrapper, ns_resolver)
  File "/home/vivekv/.cache/pypoetry/virtualenvs/pifnow-Zp6OiFzb-py3.12/lib/python3.12/site-packages/pydantic/_internal/_model_construction.py", line 537, in set_model_fields
    fields, class_vars = collect_model_fields(cls, bases, config_wrapper, ns_resolver, typevars_map=typevars_map)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/vivekv/.cache/pypoetry/virtualenvs/pifnow-Zp6OiFzb-py3.12/lib/python3.12/site-packages/pydantic/_internal/_fields.py", line 220, in collect_model_fields
    _warn_on_nested_alias_in_annotation(ann_type, ann_name)
  File "/home/vivekv/.cache/pypoetry/virtualenvs/pifnow-Zp6OiFzb-py3.12/lib/python3.12/site-packages/pydantic/_internal/_fields.py", line 258, in _warn_on_nested_alias_in_annotation
    for anno_arg in args:
                    ^^^^
TypeError: 'member_descriptor' object is not iterable

Как объяснил @SerhiiFomenko, проблема была в подписи метода конечной точки api.py

@router.get('/programs', response=list[MentorOutSchema])
async def mentor_programs(request):
    return Program.objects.filter(mentor=request.user)
Вернуться на верх