Django REST Framework - 未找到嵌套序列化器

0 投票
1 回答
657 浏览
提问于 2025-04-29 15:40

我正在使用django-rest-framework,发现一个关于嵌套序列化器的问题。系统提示我找不到我的序列化器对象。下面是我的代码和错误追踪信息:

room/serializers.py

class RoomSerializer(serializers.ModelSerializer):
    name = serializers.CharField(max_length=255)
    type = RoomTypeSerializer()
    clinic_location = serializers.Field(source='clinic_location')
    status = RoomStateTypeSerializer()
    url = serializers.CharField(max_length=100, default="room")

    class Meta:
        model = Room

visit/serializers.py

from clinic.serializers import *
from patient.serializers import *
from room.serializers import *
from service.serializers import *
from transition.serializers import *
from userprofile.serializers import *

class SubvisitSerializer(serializers.ModelSerializer):
    visit = VisitSerializer()
    room = RoomSerializer()
    service = ServiceSerializer()
    transition = TransitionSerializer()
    status = SubVisitStateSerializer()
    patient = PatientSerializer()
    clinic_location = ClinicLocationSerializer()

    class Meta:
        model = Subvisit

错误追踪信息:

File "/Users/Zee/Repos/patient-flow/visit/serializers.py" in SubvisitSerializer
  51.   room = RoomSerializer()
Exception Value: name 'RoomSerializer' is not defined

非常感谢任何帮助。

祝好,

Zee

暂无标签

1 个回答

0

谢谢 @dreysecat 和 @mariodev。

@mariodev,我试着明确地导入了序列化器,但没有成功。不过这让我想起了我的导入语句,我觉得这里面有些奇怪的事情发生了。

我把序列化器移动到了另一个位置,并从那里导入。看了一下错误信息,才意识到是有一个嵌套的序列化器导致了这个问题。

谢谢,

Zee

撰写回答