为什么django rest框架没有';t显示OneToOneField数据-django
我想在我的站点中设置restful API。我使用了django rest框架。 当我从数据库中获取一个对象时,它不会显示相关的对象 下面是我的第一个模型(父模型): 下面是我的第二个模型(子模型): 正如您在第二个代码片段中看到的,为什么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
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')