如何在Django中使用序列化器保存模型实例?

时间:2019-07-28 11:47:16

标签: django django-rest-framework django-serializer

我想使用DRF提供的序列化程序将类实例保存在数据库中。 序列化器

class PersonSerializer(serializers.ModelSerializer):

    class Meta:
        model = Person
        fields = '__all__'

在这里我尝试保存实例:

p = Person(Name = "Test")
_srlz = PersonSerializer(data = p)

实际情况稍微复杂一点,但原理相同。 不幸的是,数据-_srlz.data为空。因此,如果我尝试通过_srlz.save()方法保存数据,则没有任何变化。 否则,如果我请求存在的对象

p = Person.objects.filter(id = 1)
_srlz = PersonSerializer(data = p)

然后我的_srlz.data将为空。

如果数据源不是JSON对象而是模型类实例,该如何保存该对象?我应该先对其进行序列化然后再次反序列化吗?

我已经尝试保存由模型默认管理器提供的调用.save()方法的实例,但是我想将模型和服务方法分开,以便所有由序列化程序执行的数据库操作。 还是在这种情况下还可以,因为我不处理纯JSON,而是处理模型实例?但是我该如何验证数据?

0 个答案:

没有答案