Json 如何获取主键相关字段嵌套序列化程序django rest框架的所有值

Json 如何获取主键相关字段嵌套序列化程序django rest框架的所有值,json,django,serialization,nested,django-rest-framework,Json,Django,Serialization,Nested,Django Rest Framework,我有以下型号: class SearchCity(models.Model): city = models.CharField(max_length=200) class SearchNeighborhood(models.Model): city = models.ForeignKey(SearchCity, on_delete=models.CASCADE) neighborhood = models.CharField(max_length=200) 然后是以下

我有以下型号:

class SearchCity(models.Model):
    city = models.CharField(max_length=200)

class SearchNeighborhood(models.Model):
    city = models.ForeignKey(SearchCity, on_delete=models.CASCADE)
    neighborhood = models.CharField(max_length=200)
然后是以下嵌套序列化程序:

class CityNeighborhoodReadOnlySerializer(serializers.ModelSerializer):
    searchneighborhood_set = serializers.PrimaryKeyRelatedField(many=True, read_only=True)

    class Meta:
        model = SearchCity
        fields = ('city','searchneighborhood_set')
        read_only_fields =('city', 'searchneighborhood_set')
与视图配对:

class CityNeighborhoodView(ListAPIView):
    queryset = SearchCity.objects.all()
    serializer_class = CityNeighborhoodReadOnlySerializer
当我调用api时,我得到以下信息:

city: "Chicago"
    searchneighborhood_set: 
      0: 5 
      1: 4
      2: 3
city: "New York"
    searchneighborhood_set:
      0: 8
      1: 7
      2: 6
我只是得到相关对象的主键。这很好,我需要它,但我还需要
邻居的名字,我怎么才能得到它

编辑:

这个问题可能会有一些启发。但是,他们没有使用与主键相关的序列化程序,所以我的问题是(如果这当然有效,那么与主键相关的序列化程序的意义是什么


答案是不要使用
primarykeyrelatedserializer
,而是使用序列化程序来序列化
SearchNeighborary
对象

我改变了这一点:

class CityNeighborhoodReadOnlySerializer(serializers.ModelSerializer):
    searchneighborhood_set = serializers.PrimaryKeyRelatedField(many=True, read_only=True)

    class Meta:
        model = SearchCity
        fields = ('city','searchneighborhood_set')
        read_only_fields =('city', 'searchneighborhood_set')
为此:

class CityNeighborhoodReadOnlySerializer(serializers.ModelSerializer):
    searchneighborhood_set = SearchNeighborhoodSerializer(many=True, read_only=True)

    class Meta:
        model = SearchCity
        fields = ('city','searchneighborhood_set')
        read_only_fields =('city', 'searchneighborhood_set')
从这个输出:

city: "Chicago"
    searchneighborhood_set: 
      0: 5 
      1: 4
      2: 3
city: "New York"
    searchneighborhood_set:
      0: 8
      1: 7
      2: 6
我想要的是:

city: Chicago
    searchneighborhood_set:
         0: {pk: 5, neighborhood: 'River North}
    ....
但是现在出现了一个新问题,主键实现的序列化程序有什么意义