为什么 Django Rest Framework 序列化器的 `create()` 方法会返回一个值?

3

我不明白为什么DRF序列化器中的create()方法必须返回一个值。例如:

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

保存用户实例而不返回值是否足够?
1个回答

3

该代码返回创建的实例,以便如果需要,可以在任何地方使用创建的user。通常存在这样的情况:您可能需要在代码中的某个地方使用user或其他任何保存的实例。因此,在保存时始终返回已保存的实例,以便程序员可以在需要时使用它。


好的,谢谢!对我来说,返回值是必需的这一点似乎有些奇怪。 - undefined
2
更具体地说,create 返回的对象随后被序列化为响应(带有 201 状态码),这就是为什么它是必需的而不仅仅是可选的原因。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接