使用SlugRelatedField来代替PrimaryKeyRelatedField,这样可以避免进行多次查询。下面是使用SlugRelatedField的示例代码:
class AuthorSerializer(serializers.ModelSerializer):
class Meta:
model = Author
fields = '__all__'
class BookSerializer(serializers.ModelSerializer):
author = serializers.SlugRelatedField(slug_field='name', queryset=Author.objects.all())
class Meta:
model = Book
fields = '__all__'
这里我们可以看到,我们使用SlugRelatedField来代替了PrimaryKeyRelatedField,并设置了slug_field参数为name,这样就可以在一个查询中解决所有Author对象的数据,并避免了多个查询。