为什么 django rest framework 序列化器的 `create()` 方法 return 一个值?
Why `create()` method of django rest framework serializer return a value?
我不明白为什么 DRF 序列化程序中的 create()
方法必须 return 一个值。例如:
class UserSerializer(serializers.ModelSerializer):
profile = ProfileSerializer()
class Meta:
model = User
fields = ('username', 'email', 'profile')
def create(self, validated_data):
profile_data = validated_data.pop('profile')
user = User.objects.create(**validated_data)
Profile.objects.create(user=user, **profile_data)
return user
如果没有 returning 值,是否不足以保存 User istance?
它 returns 创建的实例,以便创建的 user
可以根据需要在任何地方使用。通常有一些用例,您可能需要 user
或代码中某处的任何其他通用保存实例。所以在总是保存时,返回保存的实例,以便程序员可以在需要时使用它。
我不明白为什么 DRF 序列化程序中的 create()
方法必须 return 一个值。例如:
class UserSerializer(serializers.ModelSerializer):
profile = ProfileSerializer()
class Meta:
model = User
fields = ('username', 'email', 'profile')
def create(self, validated_data):
profile_data = validated_data.pop('profile')
user = User.objects.create(**validated_data)
Profile.objects.create(user=user, **profile_data)
return user
如果没有 returning 值,是否不足以保存 User istance?
它 returns 创建的实例,以便创建的 user
可以根据需要在任何地方使用。通常有一些用例,您可能需要 user
或代码中某处的任何其他通用保存实例。所以在总是保存时,返回保存的实例,以便程序员可以在需要时使用它。