我有一个模型,例如:
class Job(models.Model):
build = models.ForeignKey(Build, on_delete=models.PROTECT)
name = models.CharField(blank=True, null=True)
和视图:
class JobViewSet(viewsets.ModelViewSet):
queryset = Job.objects.all()
serializer_class = JobSerializer
和序列化程序:
class JobSerializer(serializers.ModelSerializer):
class Meta:
model = Job
唯一的问题是,当我访问API端点时,我会收到数据,但build
模型中的Job
属性实际上是外键的整数。我想要来自该键的实际值(这也是我的Django休息框架中的模型。
我搜索了很多,我找到了一些很有前途的文章,但是当我尝试各种各样的东西时却得不到正确的结果。我还是Django的新手...你们有人可以帮忙吗?
答案 0 :(得分:4)
首先为Build
创建一个序列化程序,如:
class BuildSerializer(serializers.ModelSerializer):
class Meta:
model = Build
JobSerializer
中的下一步做:
class JobSerializer(serializers.ModelSerializer):
build = BuildSerializer()
class Meta:
model = Job
fields = ('name','build')
答案 1 :(得分:0)
使用depth
属性。
class BuildSerializer(serializers.ModelSerializer):
class Meta:
model = Build
depth = 1