为什么django rest框架没有';t显示OneToOneField数据-django

为什么django rest框架没有';t显示OneToOneField数据-django,django,django-rest-framework,django-orm,django-serializer,Django,Django Rest Framework,Django Orm,Django Serializer,我想在我的站点中设置restful API。我使用了django rest框架。 当我从数据库中获取一个对象时,它不会显示相关的对象 下面是我的第一个模型(父模型): 下面是我的第二个模型(子模型): 正如您在第二个代码片段中看到的,teacher从Profile模型中获取其值 但是在django rest framework API视图中,它不显示教师的名字,而是显示pk 以下代码段是我的序列化程序和视图: # serializer class KlassSerializer(serializ

我想在我的站点中设置restful API。我使用了django rest框架。 当我从数据库中获取一个对象时,它不会显示相关的对象

下面是我的第一个模型(父模型):

下面是我的第二个模型(子模型):

正如您在第二个代码片段中看到的,
teacher
Profile
模型中获取其值

但是在django rest framework API视图中,它不显示教师的名字,而是显示
pk

以下代码段是我的序列化程序和视图:

# serializer
class KlassSerializer(serializers.ModelSerializer):

    class Meta:
        model = Klass
        fields = ('id', 'title', 'description', 'teacher')

# view
class KlassView(APIView):

    def get(self, request, pk=None):
        if pk is not None:
            klass = Klass.objects.filter(pk=pk).get()
            serializer = KlassSerializer(klass)
            return Response({'message': 'class get ', 'data': serializer.data,})
这就是结果:

{
    "message": "class get ",
    "data": {
        "id": 13,
        "title": "ُThe First Class",
        "description": "Nothing for now!",
        "teacher": 2
    }
}
我怎样才能解决这个问题? 谢谢

试试看,更详细


(很高兴帮助你)
# serializer
class KlassSerializer(serializers.ModelSerializer):

    class Meta:
        model = Klass
        fields = ('id', 'title', 'description', 'teacher')

# view
class KlassView(APIView):

    def get(self, request, pk=None):
        if pk is not None:
            klass = Klass.objects.filter(pk=pk).get()
            serializer = KlassSerializer(klass)
            return Response({'message': 'class get ', 'data': serializer.data,})
{
    "message": "class get ",
    "data": {
        "id": 13,
        "title": "ُThe First Class",
        "description": "Nothing for now!",
        "teacher": 2
    }
}
class TeacherSerializer(serializers.ModelSerializer):

    class Meta:
        model = Profile
        fields = ('name')

class KlassSerializer(serializers.ModelSerializer):
    teacher = TeacherSerializer(read_only=True)

    class Meta:
        model = Klass
        fields = ('id', 'title', 'description', 'teacher')