python - Django `loaddata` pretty way to load same objects with different pk (id) -


i use loaddata load fixtures (django doc.)

for example have example.json:

[  {    "model": "foo.bar",    "pk": 1,    "fields": {      "name": "dmytryi"    }  },   {    "model": "foo.bar",    "pk": 2,    "fields": {      "name": "dmytryi"    }  },  ... (repeat until pk not 10 increasing pk one)  {    "model": "foo.bar",    "pk": 10,    "fields": {      "name": "dmytryi"    }  }, ] 

how see, have 10 same objects (same name same model), different pk value. after loaddata see in database 10 objects. ok.

give hint how reduce code, leave same result, if exists. you!

base =  {    "model": "foo.bar",    "fields": {      "name": "dmytryi"    } }  data = [{**base, **{'pk': id}} id in range(1, 11)] 

this unpack base dictionary , {'pk': id} dictionary new dictionary. output looks this:

[{'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}] 

you make shorter this:

[{**{'fields': {'name': 'dmytryi'}, 'model': 'foo.bar',}, **{'pk': i}} in range(1, 11)] 

but think that's worse.


Comments

Popular posts from this blog

python - Selenium remoteWebDriver (& SauceLabs) Firefox moseMoveTo action exception -

html - How to custom Bootstrap grid height? -

Ansible warning on jinja2 braces on when -