使用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
对象的数据,并避免了多个查询。