Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django`loaddata`加载具有不同pk(id)的相同对象的好方法_Python_Django_Django Serializer - Fatal编程技术网

Python Django`loaddata`加载具有不同pk(id)的相同对象的好方法

Python Django`loaddata`加载具有不同pk(id)的相同对象的好方法,python,django,django-serializer,Python,Django,Django Serializer,我使用loaddata加载设备 例如,我有一个example.json: 你们怎么看,我有10个相同的对象,相同的模型有相同的名称,但pk值不同。加载数据后,我将在数据库中看到10个对象。没关系 给出一个如何减少代码的提示,但保留相同的结果(如果存在)。谢谢你 base = { "model": "foo.bar", "fields": { "name": "dmytryi" } } data = [{**base, **{'pk': id}} for id in

我使用loaddata加载设备

例如,我有一个example.json:

你们怎么看,我有10个相同的对象,相同的模型有相同的名称,但pk值不同。加载数据后,我将在数据库中看到10个对象。没关系

给出一个如何减少代码的提示,但保留相同的结果(如果存在)。谢谢你

base =  {
   "model": "foo.bar",
   "fields": {
     "name": "dmytryi"
   }
}

data = [{**base, **{'pk': id}} for id in range(1, 11)]
这将把基本字典和{'pk':id}字典解压到一个新字典中。输出如下所示:

[{'fields': {'name': 'dmytryi'}, 'model': 'foo.bar', 'pk': 0},
 {'fields': {'name': 'dmytryi'}, 'model': 'foo.bar', 'pk': 1},
 {'fields': {'name': 'dmytryi'}, 'model': 'foo.bar', 'pk': 2},
 {'fields': {'name': 'dmytryi'}, 'model': 'foo.bar', 'pk': 3},
 {'fields': {'name': 'dmytryi'}, 'model': 'foo.bar', 'pk': 4},
 {'fields': {'name': 'dmytryi'}, 'model': 'foo.bar', 'pk': 5},
 {'fields': {'name': 'dmytryi'}, 'model': 'foo.bar', 'pk': 6},
 {'fields': {'name': 'dmytryi'}, 'model': 'foo.bar', 'pk': 7},
 {'fields': {'name': 'dmytryi'}, 'model': 'foo.bar', 'pk': 8},
 {'fields': {'name': 'dmytryi'}, 'model': 'foo.bar', 'pk': 9}]
[{**{'fields': {'name': 'dmytryi'}, 'model': 'foo.bar',}, **{'pk': i}} for i in range(1, 11)]
你可以这样把它缩短:

[{'fields': {'name': 'dmytryi'}, 'model': 'foo.bar', 'pk': 0},
 {'fields': {'name': 'dmytryi'}, 'model': 'foo.bar', 'pk': 1},
 {'fields': {'name': 'dmytryi'}, 'model': 'foo.bar', 'pk': 2},
 {'fields': {'name': 'dmytryi'}, 'model': 'foo.bar', 'pk': 3},
 {'fields': {'name': 'dmytryi'}, 'model': 'foo.bar', 'pk': 4},
 {'fields': {'name': 'dmytryi'}, 'model': 'foo.bar', 'pk': 5},
 {'fields': {'name': 'dmytryi'}, 'model': 'foo.bar', 'pk': 6},
 {'fields': {'name': 'dmytryi'}, 'model': 'foo.bar', 'pk': 7},
 {'fields': {'name': 'dmytryi'}, 'model': 'foo.bar', 'pk': 8},
 {'fields': {'name': 'dmytryi'}, 'model': 'foo.bar', 'pk': 9}]
[{**{'fields': {'name': 'dmytryi'}, 'model': 'foo.bar',}, **{'pk': i}} for i in range(1, 11)]
但我认为那更糟