【发布时间】:2026-01-12 10:00:02
【问题描述】:
我正在使用 Django REST 框架,而且我对这个东西还很陌生。
我想在我的 JSON 输出中使用字符串表示 manytomanyfield 和外键字段,而不是值。
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"}
我得到的只是值,而不是 directorName 和流派的 display_name。
请建议我如何纠正这个问题。
编辑 [已解决] 您需要重写 PrimaryKeyRelatedField 的 to_representation() 方法,因为它返回 pk。
【问题讨论】:
标签: python json django python-2.7 django-rest-framework