【问题标题】:Django REST Framework - Nested serializer not foundDjango REST Framework - 找不到嵌套序列化程序
【发布时间】:2014-12-21 08:05:00
【问题描述】:

我正在使用 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

访问/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

非常感谢任何帮助。

干杯,

【问题讨论】:

  • 您的房间序列化程序文件是room/serializer.py 还是room/serializers.py?。注意最后的s。
  • 好点,这实际上是我发帖时的一个错字。我进行了编辑。不幸的是,这不是问题,尽管它可能是:)
  • @zee 尝试显式导入序列化程序(无论如何都应该这样做,因为这是一个很好的做法)并看看会发生什么(它会抛出相同的异常吗?)

标签: python json django serialization django-rest-framework


【解决方案1】:

感谢@dreysecat 和@mariodev。

@mariodev,尝试显式导入序列化程序,但没有任何运气。然而,它敲响了我的 import 语句的警钟,我认为发生了某种奇怪的事情。

我将序列化程序移到了另一个位置,然后从那里导入了它。通过回溯阅读了一些内容,但意识到有一个嵌套的序列化程序导致了问题。

谢谢,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-09
    • 2018-07-06
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2018-05-20
    • 2014-08-20
    相关资源
    最近更新 更多