【发布时间】:2018-02-16 16:26:13
【问题描述】:
我想在我的网站中设置 Restful API。我使用了 django-rest-framework。 当我从数据库中获取对象时,它不显示相关对象。
sn-p下面是我的第一个模型(父模型):
class Profile(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL, related_name='profile',on_delete=models.CASCADE)
name = models.CharField(max_length=30)
family = models.CharField(max_length=50)
下面的sn-p是我的第二个模型(子模型):
class Klass(models.Model):
title = models.CharField(max_length=50)
description = models.CharField(max_length=500)
teacher = models.ForeignKey(Profile,related_name='teacher', on_delete=models.CASCADE)
university = models.CharField(max_length=50, blank=True, null=True)
正如您在第二个 sn-p 中看到的,teacher 的值来自 Profile 模型。
但在 django-rest-framework API 视图中,它不显示教师的姓名,而是显示pk。
下面的 sn-ps 是我的序列化器和视图:
# 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
}
}
我该如何解决这个问题? 谢谢
【问题讨论】:
标签: django django-rest-framework django-orm django-serializer