Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django rest框架中的序列化程序_Python_Django_Django Rest Framework - Fatal编程技术网

Python django rest框架中的序列化程序

Python django rest框架中的序列化程序,python,django,django-rest-framework,Python,Django,Django Rest Framework,需要关于django rest框架的序列化程序的帮助 型号 class Genre(models.Model): genre = models.CharField(max_length=255) def __unicode__(self): return u'%s' % (self.genre) class Movie(models.Model): popularity = models.FloatField() director = mod

需要关于django rest框架的序列化程序的帮助

型号

class Genre(models.Model):
    genre = models.CharField(max_length=255)

    def __unicode__(self):
        return u'%s' % (self.genre)


class Movie(models.Model):
    popularity = models.FloatField()
    director = models.CharField(max_length=255)
    imdb_score = models.FloatField()
    name = models.CharField(max_length=255)
    genre = models.ManyToManyField(Genre)

    def __unicode__(self):
        return u'%s' % (self.name)
序列化程序

class MovieSerializer(serializers.ModelSerializer):
    class Meta:
        model = Movie
        fields = ('popularity', 'director', 'genre', 'imdb_score', 'name')
        depth = 1
查看

class MovieList(APIView):

    def get(self, request, format=None):
         movies = Movie.objects.all()
         serializer = MovieSerializer(movies, many=True)
             return Response(serializer.data)
使用上述序列化程序的API的结果如下:

{
    "popularity":83.0,
    "director":"Victor Fleming",
    "genre":[
    {"id":1,"genre":"Adventure"},
    {"id":2,"genre":"Family"},
    {"id":3,"genre":"Fantasy"},
    {"id":4,"genre":"Musical"}
    ],
    "imdb_score":8.3,
    "name":"The Wizard of Oz"
}
如何排除id和流派,以便输出如下所示

{
    "99popularity": 83.0,
    "director": "Victor Fleming",
    "genre": [
      "Adventure",
      " Family",
      " Fantasy",
      " Musical"
    ],
    "imdb_score": 8.3,
    "name": "The Wizard of Oz"
  }

你最可能想做的是在你的电影序列器上使用一个类型字段。例如:

class MovieSerializer(serializers.ModelSerializer):
    genre = serializers.StringRelatedField(many=True)

    class Meta:
        model = Movie
        fields = ('popularity', 'director', 'genre', 'imdb_score', 'name')
        depth = 1

你最可能想做的是在你的电影序列器上使用一个类型字段。例如:

class MovieSerializer(serializers.ModelSerializer):
    genre = serializers.StringRelatedField(many=True)

    class Meta:
        model = Movie
        fields = ('popularity', 'director', 'genre', 'imdb_score', 'name')
        depth = 1

您好,这是可行的,但是当我发出添加新数据的post请求时,我得到了错误
StringRelatedField。必须实现to_internal_value(),您知道吗?您需要阅读文档。您好,这是可行的,但是当我发出添加新数据的post请求时,我得到了错误
StringRelatedField.to_internal_value()必须实施
,您知道这一点吗?您需要阅读文档。