我正在使用Django REST框架,并且我对这件事很相信新手。如何在JSON中获取PrimaryKeyRelatedField的字符串表示形式
我想为我的JSON输出中的manytomanyfield和foreignkey字段的字符串表示而不是值。
models.py
class Movie(models.Model):
"""Movie objects"""
name = models.CharField(max_length=128)
directorName = models.ForeignKey(Director)
genre = models.ManyToManyField(Genre)
serializers.py
class MovieSerializer(serializers.ModelSerializer):
"""
Serialiazing all the Movies.
"""
genre = serializers.PrimaryKeyRelatedField(many=True, queryset=Genre.objects.all())
directorName = serializers.PrimaryKeyRelatedField(queryset=Director.objects.all())
owner = serializers.ReadOnlyField(source='owner.username')
class Meta:
model = Movie
fields = ('popularity',"directorName",'genre','imdbScore','name','owner')
JSON输出
{"popularity":"90.0","directorName":1,"genre":[1,2,3],"imdbScore":"8.9","name":"Titanic"}
代替DIRECTO的rName和流派的display_name,我只能得到这些值。
请教我如何解决这个问题。
EDIT [解决] 您需要重写PrimaryKeyRelatedField的to_representation()方法,因为它返回峰
给我这个错误''Director'对象不可迭代' – Rohan
你能发布回溯吗? –
它解决了,实际上我为'directorName'设置了'many = True',这就是为什么它给了我'Director'对象不是可迭代的错误。但现在我得到这个东西,而不是'directorName'的字符串表示 - '“directorName”:“”,' –
Rohan