我正在使用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