Json django rest框架(批量):如何实现非标准批量加载更新/创建
我一直在尝试实现一种方法来处理DRF中的一些上传数据(有或没有批量),以使其与我的其他API保持一致,并返回良好的结果,但这似乎比它的价值更麻烦 系统处理来自外部系统的引用数据,这些系统不需要知道数据是如何存储的或已经存在的。因此,要上载的JSON数据如下所示:Json django rest框架(批量):如何实现非标准批量加载更新/创建,json,django,rest,django-rest-framework,bulk-load,Json,Django,Rest,Django Rest Framework,Bulk Load,我一直在尝试实现一种方法来处理DRF中的一些上传数据(有或没有批量),以使其与我的其他API保持一致,并返回良好的结果,但这似乎比它的价值更麻烦 系统处理来自外部系统的引用数据,这些系统不需要知道数据是如何存储的或已经存在的。因此,要上载的JSON数据如下所示: data = [ {"name": "foo", 'key': 'FOO', "resource_type": 'some-resource', 'team_tag': 'ABC1', 'properties':
data = [
{"name": "foo", 'key': 'FOO', "resource_type": 'some-resource', 'team_tag': 'ABC1', 'properties': {"foo": "bar"}},
{"name": "foo2", 'key': 'FOO2', "resource_type": 'some-resource', 'team_tag': 'ABC2'}
]
正如您所看到的,没有ID-key和resource_类型是唯一的元组(本质上是一个自然键)。系统应该根据这些是否已经存在进行更新或创建。但是,由于以下假设,我遇到了问题:
- 正在更新或创建的所有资源(由于POST/PUT/PATCH)
- 数据将具有“id”属性,并且似乎没有很好的入口点来更改对象的查询/键控方式
- 创建、验证和保存序列化程序的方式,特别是关于是更新还是创建序列化程序的方式李>
谢谢 看起来您正试图将非模型数据与
ModelSerializer
一起使用
您可能希望改为使用常规序列化程序执行[反]序列化。请参阅。这并不完全准确,因为传入数据确实与模型的属性匹配,但缺少与现有行匹配的ID属性。这就是它与通常模式的不同之处。我甚至在我的ViewSet中添加了一个部分来添加现有行的id(虽然这似乎效率低下),但它仍然以不同的方式失败,但似乎与我在帖子中提到的DRF ListSerializer错误有关,即我已经开始研究一个简化的示例,遇到了相同的问题。