Python django rest框架中的序列化程序
需要关于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
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()必须实施
,您知道这一点吗?您需要阅读文档。